c++中vector的使用

vector是一种容器,它能够像容器一样存放各种类型的对象,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()

2、代码示例

#include "stdafx.h"
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

//vector动态数组容器:向量
bool rule(const int &a,const int &b)
{
    return a > b;
}   //自定义排序规则从大到小排列

int _tmain(int argc, _TCHAR* argv[])
{
    vector<int> ivec(5,0);
    ivec.push_back(5);
    ivec.push_back(4);
    ivec.push_back(9);
    ivec.push_back(10);
    ivec.push_back(21);
    ivec.push_back(15);
    cout << "int vector:" << ivec.size() << endl;
    for (auto it = ivec.begin(); it != ivec.end();it++)
    {
        cout << *it << " ";
    }
    cout << endl;

    ivec.insert(ivec.begin() + 2, 500);//在第三个元素前插入数据
    for (vector<int>::size_type i = 0; i != ivec.size();i++)
        cout << ivec[i] << " ";
    cout << endl;
    sort(ivec.begin(), ivec.end()); //默认从小到大排序
    for (auto it = ivec.begin(); it != ivec.end();it++)
        cout << *it << " ";
    cout << endl;
    sort(ivec.begin(), ivec.end(), rule); //根据rule定义的规则排序
    for (auto it = ivec.begin(); it != ivec.end();it++)
        cout << *it << " ";
    cout << endl;
    ivec.erase(ivec.begin()+2); //删除第三个元素
    for (vector<int>::size_type i = 0; i != ivec.size();i++)
        cout << ivec[i] << " ";
    cout << endl;
    ivec.erase(ivec.begin() + 6, ivec.end()); //删除下标6到最后一个元素
    for (vector<int>::size_type i = 0; i != ivec.size();i++)
        cout << ivec[i] << " ";
    cout << endl;

    ivec.clear(); //清空所有元素

    getchar();
    return 0;
}

 

posted on 2020-03-26 14:33  fancing  阅读(151)  评论(0编辑  收藏  举报