STL之vector

来源:互联网 发布:centos启动oracle 编辑:程序博客网 时间:2024/06/15 04:55

1.添加 vector 头文件.

1:  #include <iostream>
2:  #include <vector>
3:  
4:  using namespace std;

2.构造函数

复制代码
//默认构造函数v1    vector<int> v1; //默认构造函数v1    v1.push_back(1);//在容器的最后添加一个值为t的数据,容器的size变大    v1.push_back(3);    v1.push_back(5);    v1.push_back(7);    //将一个容器初始化为另一个容器的副本    vector<int> v2(v1);//或v2=v1;或vector<typeName> v2(v1.begin(), v1.end());//v2是v1的一个副本,若v1.size()>v2.size()则赋值后v2.size()被扩充为v1.size()。    vector<int> v3(5,8);//v3包含5个值为8的元素 //只适合抗美顺序容器    vector<int> v4(10); //v4含有值初始化的10个元素 //只适合抗美顺序容器
复制代码

3.vector操作

复制代码
//vector操作    //assign 函数    v4.assign(v1.begin(),v1.end());    v1.assign(2,4);  //v1包含2个4.        //at(int idx)    //传回索引idx所指的数据,如果idx越界,抛出out_of_range.    int iTemp = v4.at(0);         //back()  //传回最后一个数据,不检查这个数据是否存在。    int iBack = v4.back();    //begin()  //解决一个随机访问迭代器第一个元素    vector<int>::iterator it = v4.begin();        //capacity() //返回容器中数据个数。    int iCap = v4.capacity();    //clear()    //移除容器中所有数据。    v1.clear();    //empty()    //判断容器是否为空。    if (v4.empty())    {        cout << "v4 is empty!";    }    //end()         //指向迭代器中的最后一个数据地址。    it = v4.end();    //erase(pos)    //删除pos位置的数据,传回下一个数据的位置。pos beg end 是迭代器.    //erase(beg,end)//删除[beg,end)区间的数据,传回下一个数据的位置。    v4.erase(v4.begin()+2);  //1 3 7    v4.erase(v4.begin()+1,v4.end()); //1        //insert() 插值操作    /*    insert(pos,elem)    //在pos位置插入一个elem拷贝,传回新数据位置。    insert(pos,n,elem)  //在pos位置插入n个elem数据。无返回值。    insert(pos,beg,end) //在pos位置插入在[beg,end)区间的数据。无返回值。*/    v4.insert(v4.begin()+1,3);  //1 3    v4.insert(v4.begin()+2,2,5);//1 3 5 5    v4.insert(v4.begin()+3,v3.begin()+2,v3.begin()+4); // 1 3 5 8 8 5    //front() 返回第一个值    int iFront = v4.front();        //get_allocator 使用构造函数返回一个拷贝. 返回vector的内存分配器     vector<int>v5( v4.begin()+1, v4.begin()+3, v4.get_allocator( ));//把V4的内存分配器作为一个参数参与构造V5。这样,它们两个用一个内存分配器了 // 3 5        //max_size()返回容器中能够放入(最大)数据的数量。在应用中没什么意义.    int imaxSize = v5.max_size();  //4G内存是4*1024*1024*1024=1073741823个字节        //pop_back() 删除最后一个数据。    //push_back(elem) 在尾部加入一个数据。    v4.pop_back();    v4.push_back(5);    //rbegin()传回一个逆向队列的第一个数据的位置    //rend()传回一个逆向队列的最后一个数据的下一个位置。    vector<int>::iterator it_beg = v4.begin();    for (;it_beg != v4.end();it_beg++)    {        cout << *it_beg << " "; //正向输出每个数据.    }    cout <<  endl;        vector<int>::reverse_iterator ir_beg = v4.rbegin();    for (;ir_beg != v4.rend();ir_beg++)    {        cout << *ir_beg << " ";//逆向输出每个数据.    }    cout <<  endl;    //resize(num)重新指定队列的长度。    v4.resize(5);//保留前五位数据.    //reserve()保留适当的容量。    v4.reserve(6);    //size()    int iSize = v4.size();        //元素互换     v4.push_back(9);    v4.swap(v3);    swap(v4,v3);
0 0
原创粉丝点击