Julia999 发表于 2019-7-16 19:28:33

Vector容器

本帖最后由 Julia999 于 2019-7-30 20:43 编辑

模板向量的一些其他成员函数:
(1)重载操作符[]返回容器中某一个元素,参考两个版本:const和非const
(2)函数frond()和back()返回第一个和最后一个元素
(3)函数insert()在一个给定的位置插入一个新的元素
(4)功能push_back()和pop_back()添加或删除最后一个成员

事例:#include<iostream>
#include<algorithm>
#include<iterator>
using namespace std;

int main(int argc,const char *argv[])
{
   const int Size=6;
   int array={1,2,3,4,5,6};
   //声明一个int类型集合的容器,并用数组a对容器进行初始化
   vector<int> v(array,array+Size);    //存array到array+size中的元素
   cout<<"First element:"<<v.front()<<"\nLast element"<<v.back()<<endl;
   //通过下标操作符和at函数来修改容器中元素内容
   //注意二者的区别,后者更安全,at函数会检查下标是否越界。
   v=7;
   //at会抛出异常(如果越界)
   v.at(2)=10;
   //在第二个元素位置插入22元素
   v.insert(v.begin()+1,22);
   //尾部添加元素19
   v.push_back(19);
   //声明一个迭代器(必须vector<int>::iterator)
   vector<int>::iterator iter;
   iter=v.begin();//迭代器指向容器第一元素的位置
   while(iter!=v.end())
   {
            cout<<*iter<<endl;//类似指针解引运算符
            iter++;//迭代器向后移动
   }
   //查找元素5(不是第5个)的位置,并返回其迭代器
   iter=find(v.begin(),v.end(),22);
   if(iter!=v.end())
   {
             cout<<"the location:"<<(iter-v.begin())<<endl;
   }
   else
    {
            cout<<"not found"<<endl;
    }
    //系统最大容量
    cout<<"The max size of the vector is:"<<v.max_size();
    //当前最大容量
    cout<<"The current capacity is:”<<v.capacity()<<endl;
    try
   {
          v.at(1)=777;   //越界 抛出异常
    }
    catch(out_of_range &e)
    {
          cout<<"Exception:"<<e.what();
    }
    v.erase(v.begin());   //清除第一个元素
    v.erase(v.begin(),v.end());   //清除所有元素
    cout<<"After erase,v"<<(v.empty()?"is:":"is not")<<"empty"<<endl;
    v.clear();//清空容器
    cout<<"After clear,v"<<(v.empty()?"is":"is not")<<“empty”<<endl;
    return 0;
}





页: [1]
查看完整版本: Vector容器