先来看一下代码:
#include<vector>
using namespace std;
int main() {
const int elem_size = 8;
int ia[elem_size] = { 12,8,43,0,6,21,10,7 };
vector<int> ivec(ia, ia + elem_size);
vector<int> ivec2;
copy(ivec.begin(), ivec.end(), ivec2.begin());
}
运行以后会产生如下错误:

原因是因为没有保证新容器有足够的空间足以置放即将到来的每一个元素,也就是上述代码中vector<int> ivec2;并没有初始化足够的空间,这里应改为vector<int> ivec2(elem_size)。
同理当我们将vector作为函数参数时,如果在函数中对vector元素进行添加,而vector没有足够的空间存储元素时也会发生上述错误。
4137

被折叠的 条评论
为什么被折叠?



