vector向量容器

vector向量容器


  • 特点:
  1. 可以进行元素随机访问。
  2. 可以再尾部添加元素。
  3. 内存自动管理。
  4. 下标从零开始。
  • 头文件:#include<vector>
  • 方法:
  1. push_back():尾部扩张元素。
  2. insert():在某个元素前插入新元素。
  3. begin():返回首元素位置的迭代器。
  4. end():返回最后一个元素的下一元素位置的迭代器。
  • 创建vector对象:
  1. 不指定大小:vector<int>V;
  2. 指定大小:vector<double>v(10);
  3. 指定大小和初始值:vector<double>v(10,8.6);
  • 尾部元素扩张:
#include<vector>
using namespace std;
int main(int argc,char * argv[])
{
    vector<int> v;
    v.push_back(2);
    v.push_back(7);
    v.push_back(9);
    return 0;
}
  • 下表方式访问
#include<vector>
#include<iostream>
using namespace std;
int main(int argc,char * argv[])
{
    vector<int> v(3);
    v[0]=2;
    v[1]=7;
    v[2]=9;
    cout<<v[0]<<" "<<v[1]<<" "<<v[2]<<endl;
    return 0;
}
  • 迭代器方式访问
#include<vector>
#include<iostream>
using namespace std;
int main(int argc,char * argv[])
{
    vector<int> v(3);
    v[0]=2;
    v[1]=7;
    v[2]=9;
    //定义迭代器变量
    vector<int>::iterator it;
    for(it=v.begin();it!=v.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0;
}
  • 元素的插入
#include<vector>
#include<iostream>
using namespace std;
int main(int argc,char * argv[])
{
    vector<int> v(3);
    v[0]=2;
    v[1]=7;
    v[2]=9;
    //在最前面插入新元素
    v.insert(v.begin(),8);
    //在第二个元素前面插入元素
    v.insert(v.begin()+2,1);
    //在最后追加3
    v.insert(v.end(),3);
    //定义迭代器变量
    vector<int>::iterator it;
    for(it=v.begin();it!=v.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0;
}
  • 元素的删除
#include<vector>
#include<iostream>
using namespace std;
int main(int argc,char * argv[])
{
    vector<int> v(10);
    for(int i=0;i<10;i++)
    {
        v[i]=i;
    }
    v.erase(v.begin()+2);
    //定义迭代器变量
    vector<int>::iterator it;
    for(it=v.begin();it!=v.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    //删除迭代器第一到第五区间的所有元素
    v.erase(v.begin()+1,v.begin()+5);
     for(it=v.begin();it!=v.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    //清空向量
    v.clear();
    cout<<v.size()<<endl;
    return 0;
}
  • 使用reverse反向排列算法,头文件:include<algorithm>
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
int main(int argc,char * argv[])
{
    vector<int> v(10);
    for(int i=0;i<10;i++)
    {
        v[i]=i;
    }
    reverse(v.begin(),v.end());
    vector<int>::iterator it;
     for(it=v.begin();it!=v.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0;
}
  • 使用sort算法对元素排序
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
int main(int argc,char * argv[])
{
    vector<int> v;
    for(int i=0;i<10;i++)
    {
        v.push_back(9-i);
    }
    vector<int>::iterator it;
    //排序前输出
     for(it=v.begin();it!=v.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    //排序(默认升序)
    sort(v.begin(),v.end());
    for(it=v.begin();it!=v.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0;
}

 
  • 向量的大小
  1. size()返回元素个数
  2. empty()返回向量是否为空

猜你喜欢

转载自blog.csdn.net/qq_40346437/article/details/81737346