首页 > 其他 > 详细

vector容器常用方法

时间:2015-06-22 06:27:04      阅读:218      评论:0      收藏:0      [点我收藏+]

容器简介

定义及初始化

vector<int> vec(5,100);
vector<string> strVec(10,"hello");

末尾插入元素

  vec.push_back(102);
  strVec.push_back("what");

遍历 size() 函数是可以动态增加的

    for(vector<int>::size_type ix=0;ix<vec.size(); ix++)
    { 
        cout<<vec[ix]<<endl;
        vec.push_back(ix+10);
        cout<<"size is"<<vec.size()<<endl;
        if(vec.size()==10)
        {
          break;
        }
    }
    for(vector<string>::size_type jx=0;jx<strVec.size();jx++)
    {
         cout<<strVec[jx]<<endl;
    }

通过下标操作增加改变vector内容,不是安全的操作

vector <int> vec2(10);
    cout<<vec2[9]<<endl;
    cout<<vec2[10]<<endl;

仅能对已存在元素进行下标操作,不存在会crash

vector<int> emptyVec;
//cout<<emptyVec[0]<<endl;    error

将元素一个容器复制给另外一个容器,类型必须匹配,容器类型和元素类型必须相同

    vector<int> vecCopy(vec);
    for(vector<int>::size_type i=0;i<vecCopy.size();i++)
    {
      cout<<vecCopy[i]<<endl;
    }

迭代器简介

所有标准库容器都支持迭代器,但只有少数的容器支持下标操作

定义

    vector<int>::iterator iter;

begin和end操作

begin返回迭代器指向的第一个位置,end指向vector的末端元素的下一个

vector<string>::iterator iBegin=strVec.begin();vector<string>::iterator iEnd=strVec.end();

迭代器的自增和解引用操作

++iter指向第二个元素
*iter指向当前元素

    cout<<*iBegin<<endl;
    cout<<*(iEnd-1)<<endl;
     for(;iBegin<iEnd;iBegin++)
    {
      cout<<*iBegin<<endl;
    }

迭代器的算术操作

iter+n iter-n
iter1-iter2

    string str("richard");
    *(iBegin+3)=str;
    cout<<*(iBegin+3)<<endl;
        cout<<iEnd-iBegin<<endl;
        vector<string>::iterator     
         mid=iBegin+strVec.size()/2;
    cout<<*mid<<endl;

const_iterator 只读

vector容器常用方法

原文:http://blog.csdn.net/richard_rufeng/article/details/46586559

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!