我正在使用 3D 矢量,一切都很完美。当我添加并使用 ofstream 文件时,出现了分段错误。我根本不明白这个问题。以下代码不起作用:
#include <iostream>
#include <vector>
#include <fstream>
std::vector < std::vector < std::vector <float> > > hand;
int main(){
//First Part
std::ofstream file;
file.open("test.csv");
file << "Hello World!";
file.close();
//Second Part
hand.reserve(20);
for (int i=0; i<hand.capacity(); i++){
hand[i].reserve(4);
}
return 0;
}
如果您评论其中一个部分,则代码将完美运行。当您想同时使用它们时,会出现分段错误。
同样重要的是要注意代码可以在以下情况下工作:
hand.reserve(20);
我们使用低于 8 的数字:
hand.reserve(7); //or lower
我的问题是:为什么当我同时使用它们时代码不起作用?我能做些什么来修复它?你对这个特殊情况有什么解释吗?
我必须在更大的代码中实现这一点,所以最好知道根本原因并在接下来的情况下避免它。