在c ++中使用向量

时间:2012-07-10 20:13:51

标签: c++ vector

我们何时应该使用向量以及何时使用普通数组。同样在我的一个代码中,我发现了一个奇怪的问题。

 class TwoTrains   
   {  
          public:  
          int pass(int t1, int t2, vector <int>);  
   };

int TwoTrains::pass(int t1, int t2, vector <int> times)  
     {  
         int size_of_array=(int)times.size();  
         for(int i=0;i<size_of_array;i++)  
         {  
              cout<<times[i]<<endl;  
         }  
         return 0;  
     }  

这是编译但是当我使用它时它会给出一个错误。为什么 -

 for(int i=0; i< times.size();i++)    

1 个答案:

答案 0 :(得分:6)

vector就是你想要的。为普通C用户提供数组。

for(int i=0; i< times.size();i++)    

不会出现任何错误,但会发出警告(将signedunsigned进行比较)。使用

for(size_t i=0; i< times.size();i++)  

for(int i=0; i<(int) times.size();i++)  

由于您不需要索引,请使用迭代器,如0A0D通知:

for(vector<int>::iterator it = times.begin(); it!=times.end();++it){
    cout<<*it;
}

甚至

for(int t: times){
    cout<<t;
}

使用C ++ 11