問題是,使用矢量時,必須爲要存儲的元素數分配內存。 (好吧,使用數組也是如此,但靜態創建時隱含着這種數組)當你沒有框時,你就不能繼續說你想在盒子裏存儲東西。
我可以通過兩種方式爲這些元素騰出空間。一種是使用如下構造函數:
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.
當然,那裏有迭代器和所有應該更安全的東西,但你可以稍後再看。
您能否將您收到的錯誤添加到您的問題中? –