Vector

在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。

1 基本操作

(1)头文件#include<vector>.

(2)创建vector对象,vector<int> vec;

(3)尾部插入数字:vec.push_back(a);

(4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。

(5)使用迭代器访问元素.

vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
    cout<<*it<<endl;

(6)插入元素:    vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;

(7)删除元素:    vec.erase(vec.begin()+2);删除第3个元素

vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始

(8)向量大小:vec.size();

(9)清空:vec.clear();

具体操作见代码,可用。

#include <vector>
#include <algorithm>
#include <iostream>
#include<string>
using namespace std;
//vector是每次迭代时都动态重新申请内存并且销毁之前已经存在的内存 
bool Comp(const int &a,const int &b)
{
    return a>b;
}//sort的下降函数,默认升序排列 
int main( )
{
   vector <char> v1;
   vector <char>::iterator Iter1;
   int i;
   string s;
   cin>>s; 
   for ( i = 0 ; i < s.length() ; i++ )
   {
      v1.push_back( s[i] );//从尾部插入 
   }
   for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
      cout << *Iter1 ;
   cout <<endl;
   //reverse (v1.begin( ), v1.end( ) );
   //sort(v1.begin(),v1.end(),greater<char>());详情见sort用法 
   //v1.assign(5,'w');重新赋予容器5个'w' 
   for ( Iter1 = v1.begin(); Iter1 != v1.end( ) ; Iter1++ )
   cout << *Iter1 ;//注意* 
   cout<< endl;
   for ( Iter1 = v1.begin(),i=0;Iter1 != v1.end( );i++,Iter1++ )
   cout <<v1[i];//注意* 
   //两种输出策略
   //vector<char>::iterator pos; 
   //pos=v1.begin(); //因为直接用迭代器失效,所以重新声明下
   //v1.erase(++pos); //删除制定位置 
   //v1.erase(pos,pos+3);
    v1.resize(5); //将元素数量改成5,如果v1变大,则多的按默认走,字符的默认为空 
    //v1.resize(5,'p'); //将元素数量改成5,如果v1变大,则多的赋值成'p'
    //v1.clear(); //清空
    for(Iter1=v1.begin(),i=0;Iter1 != v1.end();i++,Iter1++)
    {
        cout<<"v1中的"<<i<<"值:"<<v1[i]<<endl;
    }
   cout<< endl;
}
原文地址:https://www.cnblogs.com/xlqtlhx/p/6104178.html