具有结构的 C++ vector 不起作用?

标签 c++ vector struct scanf

我正在处理一些文件并尝试加载它们。我想用一个 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/

相关文章:

c++ - opencv图像去噪头文件

C++ 对派生类型 vector 的引用

c++ - STL列表、 vector 和集合的底层数据结构是什么?

c++ - 尝试读取失败后 cin 读数为零

c++ - 调整大型结构 vector 大小时的段错误

c++ - 当我有一堆小部件时,Qt 如何设置全局 mouseReleaseEvent

c++ - 将数组作为参数传递给函数

c - 如何实现继承: error: conflicting declaration ‘typedef struct

C++ 循环依赖

函数类型冲突?