开发平台(Platform): (Ex: Win10, Linux, ...)
Linux
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
g++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
我最近发现某些情况下用vector.clear()会seg fault
例如下面的code
我在for loop外面declare我的2D vector
还有我要当成row的1D vector
里面存int
每个interation我要重新建立这个DS还有里面的资料
所以用vector.clear();
不过我发现这行好像会导致seg fault
后来我把1D vector的declaration移到for loop里面
一切就正常了
觉得很疑惑
想请问有没有人知道可能的原因
为何不能这样子用clear()?
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
vector< vector<int> > temp_vec;
vector<int> temp_vec_row(length, 0);
for()
{
temp_vec.clear();
//vector<int> temp_vector_row(length, 0);
for()
temp_vec.push_back(temp_vec_row);
// Do something to fill the 2D vector
}
补充说明(Supplement):