2013-10-27 56 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