C++中vector容器的常用操作方法实例总结

2020-01-06 15:15:51刘景俊

12 删除符合条件的项


int CurrentCount=(int)m_itemVector.size(); 
for(int i=0;i<CurrentCount;i++) 
{ 
  if(m_itemVector.at(i).flag==1) 
  { 
    m_itemVector.erase(m_itemVector.begin()+i); 
    DeleteItem(i); 
    this->Invalidate();  
 
    CurrentCount--; 
    i--;                        //删除第i位置后,需要重新判断第i位置是否符合条件,因此需要i--。 
  } 
} 

13 正序遍历 然后反序遍历


vector<ITEM_CHECK>::iterator iter=m_itemVector.begin(); 
for(i=0;iter!=m_itemVector.end();iter++,i++) //先全部取消 
{ 
  iter->flag=0; 
} 
 
for (;i>0;)            //从后往前设置 iter 退到Begin() 再减的话 就会出现问题 
{ 
 
  iter--; //结束时,正好退到Begin() 
  i--; 
  iter->flag=1; 
} 

14 在VECTOR中查找


#include<vector> 
#include<algorithm> //在VECTOR中查找 
using namespace std; 

vector<int> L; 
L.push_back( 1 ); 
L.push_back( 2 ); 
L.push_back( 3 ); 
L.push_back( 4 ); 
L.push_back( 5 ); 
vector<int>::iterator result = find( L.begin( ), L.end( ), 3 ); //查找3 
if ( result == L.end( ) ) //没找到 
  cout << "No" << endl; 
else //找到 
  cout << "Yes" << endl; 
 

注:相关教程知识阅读请移步到C++教程频道。