问题是,使用矢量时,必须为要存储的元素数分配内存。 (好吧,使用数组也是如此,但静态创建时隐含着这种数组)当你没有框时,你就不能继续说你想在盒子里存储东西。
我可以通过两种方式为这些元素腾出空间。一种是使用如下构造函数:
std::vector<int> myVector(100); // This makes room for a 100 elements
并使用该功能。
std::vector<int> myVector;
myVector.reserve(100); // This makes room for a 100 elements after the declaration
所以从那里,我认为你可以找出下一步。你只需要为所有东西腾出空间。
我个人不会使用Vector,因为我从来没有被要求(必须在学校制作我自己的动态列表,并基本上用它作为我的“Vector”库),但是我绝对应该在需要时使用它,因为它提供了很多优点。
就像一个通知,我知道的一件事是,你正在使用不安全的方式访问你的向量中的数据。不安全,因为它不会抛出任何异常,以便在发生限制访问时捕捉异常。
std::vector<int> myVector(10);
myVector.at(0) = 0; // What I mean is that function, you can jut wrap it inside a try-catch to make it safer.
myVector[0] = 0; // Instead of this, of course.
当然,那里有迭代器和所有应该更安全的东西,但你可以稍后再看。
您能否将您收到的错误添加到您的问题中? –