vector<int> vIntVector(10);
vIntVector.push_back(1);
vIntVector.push_back(2);
vIntVector.push_back(3);
vIntVector.push_back(4);
vIntVector.push_back(5);
vIntVector.push_back(6);
vIntVector.push_back(7);
vIntVector.push_back(8);
vIntVector.push_back(9);
vIntVector.push_back(10);        int i=1;
vector<int>::iterator intIterator;
TRACE("   Iterator: "); 
for (intIterator = vIntVector.begin(); intIterator != vIntVector.end(); intIterator++)
{
// TRACE("%d",*intIterator); 
TRACE("%d",vIntVector.at(i)); 
if (intIterator != vIntVector.end()-1) 
TRACE( " , "); 
i++;
}
TRACE( "\n");Iterator: 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10
怎么会打出这种东西 而不是直接1-10TRACE("%d",*intIterator); TRACE("%d",vIntVector.at(i)); 都是一个结果

解决方案 »

  1.   

    因为你前面10个都没有赋值,当然是这样。vector 构造函数的参数是预分配了10个成员,要么你用vIntVector[0~9]赋值,要么不要参数。
      

  2.   

    嗬嗬,你先定义了一个大小为10的int书组,然后又往后添加了10个数值
    你应该这么写
    第一行改为vector<int> vIntVector;就是你想要得了,vector的大小是动态可调的,不需要你去指定
      

  3.   

    vector<int> vIntVector(10); 
    这句的意思是构造一个有10个元素的vector容器,同时将每个元素赋默认的初值0。
    当再次用push_back的时候,vector容器会动态地调整大小,此时每调用一次push_back容器中就会多一个有效元素。
      

  4.   

    vector <int> vIntVector(10);
      

  5.   


    vector是一种基于函数模板的类,其对象定义与成员数据的赋值应该按照类的规则进行,即通过成员函数pushback完成,所以正确代码应该是:
      

  6.   

    你得先知道vector是个什么东西