C++之路起航——标准模板库(vector)
vector(动态数组或向量):动态分配内存空间的线性储存结构。
需要包括头文件<vector>
定义:
vector<数据类型> 变量名;
Eg:
vector<int> s; //定义了一个数据类型为整形的动态数组;
基本操作(红色标识为常用操作):
s[i]直接以下标方式访问容器中的元素。
s.front() 返回首元素。
s.back() 返回尾元素。
s.push_back(x)向表尾插入元素x。
s.size() 返回表长。
s.empty() 当表空时,返回真,否则返回假。
s.pop_back() 删除表尾元素。
s.begin() 返回指向首元素的随机存取迭代器。
s.end() 返回指向尾元素的下一个位置的随机存取迭代器。
s.insert(it, x) 向迭代器it 指向的元素前插入新元素x。
s.insert(it, n, x)向迭代器it 指向的元素前插入n 个x。
s.insert(it, first, last)将由迭代器first 和last 所指定的序列[first, last)插入到迭代器it 指向的元素前面。
s.erase(it)删除由迭代器it 所指向的元素。
s.erase(first, last)删除由迭代器first 和last 所指定的序列[first, last)。
s.clear()删除容器中的所有的元素。
s.swap(v)将s 与另一个vector 对象v 进行交换。
代码解释:
#include<vector>
#include<iostream>
using namespace std;
vector <int> a;//定义整型动态数组a;
int main()
{
a.push_back(1);//在表末压入数字1;
a.push_back(2);
a.push_back(3);
cout<<*a.end()<<endl;//用于解释迭代器所指向的为表末元素的下一个储存位置;
vector <int> ::iterator itor=a.begin();//迭代器只了解即可,蓝色标识部分为迭代器的类型,为整型动态数组的迭代器ator,初始位置为a.begin();
for (;itor!=a.end();itor++)//用迭代器来遍历表中的所有元素;
cout<<*itor<<endl;//迭代器类似于指针,需要用*运算来取得其内容;
for (int i=0;i<a.size();i++)
cout<<a[i]<<endl; //利用下标法来遍历表中所有元素;
a.pop_back();//删除表末最后一个元素;3 out
cout<<*(a.end()-1)<<endl;//输出表末最后一个元素,这时输出的是2;
return 0;
}
//若看不太懂,推荐C++远征之模板篇第六章 标准模板类。
C++之路起航——标准模板库(vector)的更多相关文章
- C++之路起航——标准模板库(list)
list(链表):http://baike.baidu.com/link?url=gkVdBlHEzy6ssrgT5Iy2wze4jl37ka1G45TRpUHrQSYFZQg2HimtUCePV0t ...
- C++之路起航——标准模板库(queue)
queue: FIFO队列:先进先出队列. 优先队列:对队列中的元素按优先级的大小输出. 定义: FIFO队列: queue<数据类性>变量名. 优先队列:priority_queue&l ...
- C++之路起航——标准模板库(deque)
deque(双端队列):http://baike.baidu.com/link?url=JTvA2cuLubptctHZwFxswvlZvxNdFOxmifsYCGLj5IZF-Tj4rbWLv8Jn ...
- C++之路起航——标准模板库(set)
set(集合):http://baike.baidu.com/link?url=cb68AB-3qfEK8RoaGHJFClb4ZiWpJfc32lPOLtaNUrdxntFC738zCZsCiUlf ...
- [转载]C++之路起航——标准模板库(deque)
转自:https://www.cnblogs.com/grhyxzc/p/5074061.html deque(双端队列):http://baike.baidu.com/link?url=JTvA2c ...
- C++:标准模板库vector
一:介绍 vector是C++标准模板库,是一个容器,底层是数组,为连续内存. 命名空间为std,所属头文件为<vector> 注意:不是<vector.h> vector ...
- 标准模板库(STL)学习探究之vector容器
标准模板库(STL)学习探究之vector容器 C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被 ...
- C++标准模板库(STL)之Vector
在C中,有很多东西需要自己实现.C++提供了标准模板库(Standard Template Libray,STL),其中封装了很多容器,不需要费力去实现它们的细节而直接调用函数来实现功能. 具体容器链 ...
- C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用
摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动 ...
随机推荐
- C、VDD、VSS、 VEE 和VPP的区别
http://www.cnblogs.com/crazybingo/archive/2010/05/14/1735802.html C.VDD.VSS. VEE 和VPP的区别 在电子电路中,常可以看 ...
- ngios
一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报 ...
- Difference between _, __ and __xx__ in Python
When learning Python many people don't really understand why so much underlines in the beginning of ...
- 管子&小白
管夷吾已入朝,稽首谢罪,桓公亲手扶起,赐之以坐.夷吾曰:“臣乃俘戮之余,得蒙宥死,实为万幸,敢辱过礼!”桓公曰:“寡人有问于子,子必坐,然后敢请."夷吾再拜就坐. 桓公曰:“齐,千乘之国,先 ...
- Bulk Insert & BCP执行效率对比
我们以BCP导出的CSV数据文件,分别使用Bulk insert与BCP导入数据库,对比两种方法执行效率 备注:导入目标表创建了分区聚集索引 1.BCP导出csv数据文件 数据量:15000000行, ...
- Makefile使用总结
1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之 ...
- httpclient提交json参数
private void httpReqUrl(List<HongGuTan> list, String url) throws ClientProtocolException, IOEx ...
- 10 Ways to Inspire Your Team
Inspire. Just the word itself causes us to pause and think. We may remember our own personal heroes ...
- JS之相等操作符
1.相等 == 和不相等 != 先转换操作数再比较相等性 在转换不同的数据类型时,相等和不相等遵循以下规则: 1.1 如果有一个操作数是布尔值,则在比较相等性前先将其转换为数值---false转换为0 ...
- Swift-01 UIWebView加载网页
UIWebView在swift里面的语法,和OC不太一样,但是,使用方法什么的,都是从OC演变过来的.比如,都得有init方法,都有loadRequest方法,所以,有了OC这个基础,学习swift是 ...