博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++常用集合开发:STL vector
阅读量:5961 次
发布时间:2019-06-19

本文共 2107 字,大约阅读时间需要 7 分钟。

hot3.png

一、定义

       vector是C++中的一种数据结构,确切的说是一个类。它相当于一个动态的数组,是一个顺序容器,能够在尾部高效地插入和删除元素,同时支持随机访问其中的值。动态改变大小可以达到最大节约空间的目的。

 

二、基本操作

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

(2)创建vector对象:vector<int/double/string/…> m_vec;

(3)使用下标访问元素:m_vec [0],m_vec [1],…

(4)使用迭代器访问元素:

vector
::iterator vecItem;for(vecItem = m_vec.begin(); vecItem!= m_vec.end(); vecItem ++){    cout << * vecItem << endl;}

 

 

三、常用成员函数

(1)从尾部插入一个元素:push_back(data);

(2)从尾部删除一个元素:pop_back();

(3)从某一位置插入一个元素:insert(pos, data)

(4)从某一位置删除一个元素:erase(pos);

(5)从某一区间删除若干元素:erase(begPos, endPos);

(6)返回第一个数据:front();

(7)返回最后一个数据:back();

(8)返回容器第一个元素的迭代器:begin();

(9)返回容器最后一个元素的迭代器:end();

(10)返回容器中实际数据的个数:size();

(11)重置容器大小:resize(num);

(12)判断容器是否为空:empty();

(13)删除容器中所有元素:clear();

 

四、示例代码

#include 
  #include 
using namespace std;  void main(){    vector
 vec;    vector
::iterator vecItem;    vec.push_back(1);    vec.push_back(2);    vec.push_back(3);    vec.push_back(4);    cout << "The first data is : " << vec.front() << endl;    cout << "The last data is : " << vec.back() << endl;    cout << "All datas are : ";    for(vecItem = vec.begin(); vecItem < vec.end(); vecItem++)    {        cout << *vecItem << "  " ;    }    cout << endl;    vec.pop_back();    cout << "All datas are : ";    for(vecItem = vec.begin(); vecItem < vec.end(); vecItem++)    {        cout << *vecItem << "  " ;    }    cout << endl;    vec.insert(vec.begin()+1, 4);    cout << "All datas are : ";    for(vecItem = vec.begin(); vecItem < vec.end(); vecItem++)    {        cout << *vecItem << "  " ;    }    cout << endl;    vec.erase(vec.end()-2);    cout << "All datas are : ";    for(vecItem = vec.begin(); vecItem < vec.end(); vecItem++)    {        cout << *vecItem << "  " ;    }    cout << endl;    cout << "The num of datas is : " << vec.size() << endl;    vec.resize(2);    cout << "The num of datas is : " << vec.size() << endl;    cout << "The vector is empty ? " << vec.empty() << endl;    vec.clear();    cout << "The vector is empty ? " << vec.empty() << endl;}

转载于:https://my.oschina.net/u/2300755/blog/625147

你可能感兴趣的文章
iptables 规则执行顺序
查看>>
搭建kms服务器速记
查看>>
Linux中rc的含义
查看>>
StringBuffer 和 StringBiulder的区别
查看>>
自建网页服务器基础
查看>>
浅谈oracle 12C的新特性-CDB和PDB
查看>>
mysql 加密连接SSL
查看>>
mariadb 10.1.xx 自带数据库审计插件,直接上操作过程
查看>>
MySql的安装
查看>>
同时开左右两个SAPGUI编辑器显示同一段ABAP代码
查看>>
无法在Chrome浏览器中查看SCCM SSRS报告
查看>>
mongoDB副本集的搭建
查看>>
ORA-01045: user ICCS lacks CREATE SESSION privilege; logon denied
查看>>
Android官方开发文档Training系列课程中文版:手势处理之监测通用手势
查看>>
python 网络编程
查看>>
关闭Xshell警告音等一些小技巧
查看>>
vCenter的安装与部署
查看>>
linux下调整firefox的有用设置(高分辨率下需要)
查看>>
一句话木马(webshell)是如何执行命令的
查看>>
Jenkins Gitlab持续集成打包平台搭建
查看>>