2013-10-27 80 views
0

首先,是的,我是C++向量的新手。未分配C++向量值

現在我的問題是,你爲什麼認爲我的載體是空的?

我有一個全局變量:

vector<int> parentVector; 

現在,因爲它是一個全局變量,我不知道它應該是什麼尺寸,只是後來到程序中,我做這在某些時候:

//numberOfNodes = 8 in current example 
parentVector.reserve(numberOfNodes); 

過了一會兒,我試圖分配一個值向量的第一個元素,但它不工作:

parentVector[0] = -1; 

而且我也做到以下幾點,不指定任何值之一:

//nextNode.node and currentNode.node is between the range of 1 - 8, thus the - 1. 
parentVector[nextNode.node - 1] = currentNode.node - 1; 

編輯:謝謝您的回答,調整大小()工作。

+2

要麼使用'resize'用'[]'存取,或簡單地使用'push_back' – lolando

回答

2

在使用std::vector::reserve矢量預留空間是不一樣的將元素添加到它。保留之後,矢量仍然是空的。改爲使用std::vector::resize