我正在处理一些文件并尝试加载它们。我想用一个 vector 来存储最终的信息,这样我就可以在全局范围内保存它而无需知道它有多大。这是我的代码,但程序没有完成启动:
std::string one = "v 100.32 12321.232 3232.6542";
struct Face {float x, y, z;};
std::vector<struct Face> obj;
char space[3];
sscanf(one.c_str(), "%s %f %f %f", space, &obj[1].x1, &obj[1].y1, &obj[1].z1);
std::cout << obj[1].x1 << std::endl;
最佳答案
默认构造vector
s 开始为空,即使编译器允许您使用 operator []
,这样做是未定义的行为。
您可以在创建vector
时分配一些空间。虽然:
std::vector<struct Face> obj(2); // Allow enough space to access obj[1]
关于具有结构的 C++ vector 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14074734/