关闭

C++ 标准库 vector 使用方法

708人阅读 评论(0) 收藏 举报

向量(vector)相关使用方法:

1、push_back        //在数组的最后添加一个数据

2、pop_back         //删除数组的最后一个数据

3、at                     //得到编号位置的数据

4、begin              //得到数组的头指针

5、end                //得到数组最后一个单元+1的指针

6、front               //得到数组第一个数据的引用

7、back             //得到数组最后一个数据的引用

8、max_size      //得到vector最大容量多少

9、capacity       //得到当前vector分配的大小

10、size            //当前使用数据的大小

11、resize          //改变当前使用数据的大小,如果它比当前使用的大,则默认填充(v.resize(2*v.size,0))

12、reserve      //改变当前vector所分配的大小

13、erase       //删除当前指针所指向的数据

14、clear        //清空当前vector中元素

15、rbegin       //将vector翻转后的开始指针返回

16、rend         //将vector翻转后的末尾指针返回

17、empty     //判断vector是否为空

18、swap     //与另一个vector交换数据

vector  初始化及赋值:

vector  <数据类型>   标示符;

vector  <数据类型>   标示符(最大容量);

vector  <数据类型>   标示符(最大容量,初始所有值);

vector  <int>  array(5,1);      //数组大小为5个,每个值初始为1;

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector <int> v(5,1);
    for(int i=0;i<5;i++)
    cout <<v[i]<<" ";
    cout<<endl;
    return 0;
}

使用数组对vector进行初始化:

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int a[10]={1,2,3,4,5,6,7,8,9};
    vector <int> v(a+1,a+3);
    for(vector <int>::iterator i = v.begin(); i != v.end(); i++)
    cout <<*i<<" ";
    cout<<endl;
    return 0;
}

vector 数组是前闭后开,所以输出第二个和第三个;

vector 数组的排序:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    int a[10]={1,22,113,24,25,36,437,18,9};
    vector <int> v(a+1,a+7);
    sort(v.begin(),v.end());    //从小到大排序
    sort(v.rbegin(),v.rend());  //从大到小排序
    cout<<v[0]<<endl;
    return 0;
}
对于二维 vector 的定义:

vector <vector <int>  >  v(10,vector <int>(0));

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    vector<vector<int> > v(10,vector <int>(0));
    for(int i=0;i<10;i++)
        for(int j=0;j<=9;j++)
        v[i].push_back(j);
    for(int i=0;i<10;i++){
        for(int j=0;j<v[i].size();j++)
        cout<<v[i][j]<<" ";
        cout<<endl;
    }
    return 0;
}
定义一个行列都变化的二维vector:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    vector <vector<int> > v;
    vector <int> vv;
    for(int i=0;i<10;i++){
        v.push_back(vv);
        for(int j=0;j<=9;j++)
        v[i].push_back(j);
    }
    for(int i=0;i<10;i++){
        for(int j=0;j<v[i].size();j++)
        cout<<v[i][j]<<" ";
        cout<<endl;
    }
    return 0;
}

使用vector 删除元素;

#include <iostream>
#include <vector>
#include <algorithm>


using namespace std;


int main()
{
    int a[10]={1,22,113,24,25,36,437,18,9};
    vector <int> v(a+1,a+7);
    for(vector <int>::iterator i=v.begin();i != v.end();){
        if(*i ==22)
            i=v.erase(i);
        else
            ++i;
    }
    for(vector <int>::iterator t = v.begin();t != v.end();++t)
        cout<<*t<<" ";
    return 0;
}


参考:http://m.blog.csdn.net/blog/szu030606/8565318



 

  

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:50053次
    • 积分:1077
    • 等级:
    • 排名:千里之外
    • 原创:59篇
    • 转载:6篇
    • 译文:0篇
    • 评论:0条