【发布时间】:2018-12-29 07:54:19
【问题描述】:
让我们以自定义vector 实现为例:
template<typename Object>
class myVector {
public:
explicit myVector(int size = 0) :
_size{ size },
_capasity{ size + SPARE_CAPACITY }
{
_buff = new Object[_capasity];
if (_size > 0) {
for (int i = 0; i < _size; i++) {
//_buff[i] = 0;
}
}
}
// more code
private:
Object * _buff = nullptr;
int _size;
int _capasity;
};
所以我的问题是,如何使 myVector 进行值初始化,以防我将其初始化为:
int main() {
myVector<int> v02(5);
}
这里,它包含 5 个int 值,所以我需要它全为零;与其他类型相同。我注释掉了_buff[i] = 0;,因为它特定于int。请给我一些提示。
【问题讨论】:
标签: c++ c++11 containers value-initialization