在C++ for循环中使用向量堆错误?

squ*_*boo 1 c++ memory memory-management

通过在for循环中声明和使用向量,是否存在堆损坏的已知问题?例如这样做:

for(int i = 0; i < N; ++i) {
   std::vector<int> vec;
   for(int j = 0; j < 3; ++j) {
      vec.push_back(0); //-Initialize
   }
   ...
   ...
}
Run Code Online (Sandbox Code Playgroud)

Luc*_*ore 5

不,这很好,但使用相同的效果

std::vector<int> vec(3,0)
Run Code Online (Sandbox Code Playgroud)

而不是第二个循环.