std::vector<Foo> vec;
Foo foo(...);
assert(vec.size() == 0);
vec.reserve(100); // I've reserved 100 elems
vec[50] = foo; // but I haven't initialized any of them
// so am I assigning into uninitialized memory?
Run Code Online (Sandbox Code Playgroud)
以上代码是否安全?
它无效.向量没有元素,因此您无法访问它们的任何元素.您只需为100元素保留空间(这意味着在插入超过100个元素之前,保证不会重新分配).
事实是,你不能在不初始化元素的情况下调整向量的大小(即使只是默认初始化).
| 归档时间: |
|
| 查看次数: |
229 次 |
| 最近记录: |