【发布时间】:2015-09-21 17:53:52
【问题描述】:
假设我有一个其他容器类型的向量。在迭代向量时,我更改了容器的大小。鉴于向量试图在系统内存中保持连续,指针算术会在这样的循环中失败吗?例如,
#include <stdlib.h>
#include <vector>
using namespace std;
int main(){
vector<vector<double> > vec_vec(4);
for (auto i=vec_vec.begin(); i!=vec_vec.end(); ++i){
for (double j=0; j<100; j+=1.0){
i->push_back(j)
};
};
return 0;
}
到目前为止,我在使用这样的代码时没有遇到任何问题,但现在我想知道我是不是走运了。这安全吗?是否取决于向量内使用的容器类型?
【问题讨论】: