试图弄清楚这一点,我感到很失落。我有自己的数据结构,我计划使用向量来避免跟踪可用空间和重组,如果我使用简单的数组,我需要这样做。我不知道我只是没有正确初始化还是什么,但我所做的每一项任务似乎都消失得无影无踪。
这是一些简单的代码来说明我在说什么:
#include <vector>
#include <iostream>
using namespace std;
struct node
{
int test_int;
bool test_bool;
};
struct file
{
vector<node> test_file;
};
int main()
{
file myfile;
int myint;
cout << "Enter number: ";
cin >> myint;
myfile.test_file[0].test_int = myint;
cout << "Number entered is: " << myfile.test_file[0].test_int << endl;
return 0;
}
所以基本上它是一个结构内的向量。似乎访问向量的正常方法似乎不起作用,因为我无法向向量读取或写入任何内容,但是myfile.test_file.size()
似乎可以正常工作(因为它们从新创建的结构返回“0” )。尝试直接访问索引myfile.test_file[0].test_int
会导致运行时错误,vector subscript out of range
就好像它实际上并不存在一样。
我没有正确初始化它吗?这对我来说似乎有点荒谬,我不明白为什么它不会那样工作。
编辑:编辑代码以更清楚地显示我所指的行为。这会编译但会出现运行时错误vector subscript out of range