2012-05-27 28 views
0

我有一个向量,我使用push_back添加元素。矢量中的第一个元素是什么?

当我正在调试时,我向矢量添加了一个元素,但矢量包含[0]和[1]的元素。 [1]是我推送的元素,但[0]看起来像某种可以为空的对象。

矢量大小也是2,即使我只插入一次。

后来在我的代码中,我将遍历使用vector_name[i]的向量。最初我会从i=0开始,这是否意味着您应该使用1(或某种迭代器)的向量?

+9

发表一个简短的例子来说明。矢量中的元素零与其他元素相同。我的猜测是你说'vector v(1);'这会创建一个大小为1的向量,而不是第一个元素为1。然后,当你'push_back'时,你添加到结尾。 – chris

+2

请在初始化向量时添加代码 – Attila

+1

请勿保留指向元素的指针。当vector <>重新分配其内部存储时,使用push_back()会使它们失效。 –

回答

3

第一个元素应该是vector[0]

例如:

int anumber = 300; 
std::vector<int> intvector; 
intvector.push_back(anumber); 

std::cout << intvector[0]; 

将打印300