c++标准模板库(STL)

c++的vector是一个十分有用的容器。它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据,使用时需要添加头文件:

#include <vector>
using namespace std;

vector的基本函数如下:

vector()    //创建一个空的vector
vector(int size)    //创建一个vector,元素个数为size
vector(int nSize,const t& t)    //创建一个vector,元素个数为nSize,且值均为t
vector(const vector&)    //复制构造函数
vector(begin,end)    //复制[begin,end)区间内另一个数组的元素到vector中

增加函数:

vector<int> v;
int i = 1;
v.push_back(i);
v.insert(v.begin()+1, 2);

删除函数:

vector<int> v(10,1);    //定义了10个整型元素的向量,且给出每个元素的初值为1
v.pop_back();    //删除向量中最后一个元素
v.clear();    //清空向量
v.erase(v.begin(), v.end());

判断函数:

vector<int> v;
v.empty();

大小函数:

vector<int> v;
v.size();    //返回向量中元素的个数
v.capacity;    //总共可以容纳的元素个数

遍历函数:

vector<int> v;
vector<int>::iterator it;
for(it=v.begin();it!=v.end();it++){
    cout<<*it<<endl;
}
for(int i=0;i<v.size();i++){    
   cout<<v.at(i)<<" ";    
}    
   cout<<endl;    

其他算法:

(1) 使用reverse将元素翻转:

#include<algorithm>
reverse(vector.begin(),vector.end());

将元素翻转,即逆序排列(在vector中,如果一个函数中需要两个迭代器,一般后一个都不包含)

(2)使用sort排序:

#include<algorithm>
sort(vec.begin(),vec.end());

(默认是按升序排列,即从小到大)。可以通过重写排序比较函数按照降序比较,如下定义排序比较函数:

bool Comp(const int &a,const int &b)
{
    return a>b;
}
void swap(vector&):交换两个同类型向量的数据
void assign(int n,const T& x):设置向量中第n个元素的值为x
void assign(const_iterator first,const_iterator last):向量中[first,last)中元素设置成当前向量元素
posted @ 2019-03-17 20:44  苏安  阅读(319)  评论(0编辑  收藏  举报