C++STL中vector容器类的简单操作

来源:互联网 发布:期货程序化交易软件 编辑:程序博客网 时间:2024/05/01 21:04

vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象;简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。

vector容器类的基本操作有:

(1)头文件:#include <vector>

(2)创建对象int类型对象ans:vector < int > ans;

(3)尾部插入元素x:ans.push_back(x);

(4)在第i个元素(元素标号由0开始)前面插入x:ans.insert( ans.begin( )+i,x );

(5)删除尾部元素:ans.pop_back();

          删除第i个元素:ans.erase(ans.begin( )+i );

          删除区间[  i , j ):ans.erase(ans.begin( )+i,ans.end( )+j);

(6)访问第0个元素:cout<<ans[ 0 ]<<endl;

          使用迭代器访问:

vector<int>::iterator it;for(it=ans.begin();it!=ans.end();it++)    cout<<*it<<endl;

 

(7)容器大小:ans.size();

(8)清空:ans.clear();

(9)判断是否为空:ans.empty();

 

vector的变量类型不仅可以是int,double,string类型的,还可以是结构体类型,但此时结构体类型要定义为全局变量。

#include <vector>typedef struct node{    int a;    double b;    char c;}Node;int main(){    vector <Node> ans;}


两个vectors被认为是相等的,当且仅当:

它们具有相同的容量且所有相同位置的元素都相等.

vectors之间大小的比较是按字典序进行的.

此外,vector定义的变量还可以作为其他函数的参数:

(1)使用reverse函数将元素翻转:(需要头文件#include<algorithm>)

reverse(ans.begin(),ans.end());将元素翻转(在vector中,如果一个函数中需要两个迭代器,一般后一个都不包含.)

(2)使用sort排序:(需要头文件#include<algorithm>)

sort(vec.begin(),vec.end());(默认是按升序排列,可自己写cmp函数降序排列).

 

0 0
原创粉丝点击