C++ STL vector详解
一.解释:
vector(向量):是一种顺序容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。
二.用法:
1.头文件
#include <vector>
2.定义方式
a) vector<int>v1;//vector元素为 int 型
b) vector<string>v2;// vector元素为string型
c) vector<node>v3;//入队元素为结构体型,结构体可以自行定义vector<int>::iterator it;//定义一个迭代器
3.常用操作
v1.push_back() //在数组的最后添加一个数据
v1.pop_back() //去掉数组的最后一个数据
v1.front() //返回第一个元素(栈顶元素)
v1.begin() //得到数组头的指针,用迭代器接受
v1.end() //得到数组的最后一个单元+1的指针,用迭代器接受
v1.clear() // 移除容器中所有数据
v1.empty() //判断容器是否为空
v1.erase(pos) //删除pos位置的数据
v1.erase(beg,end)// 删除[beg,end)区间的数据
v1.size() //回容器中实际数据的个数
v1.insert(pos,data) //在pos处插入数据
三.例子
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;int main()
{vector <int> v; //定义vectorvector<int>::iterator it; //定义一个vector迭代器for(int i = 10; i >= 1; i--) //插入数据v.push_back(i);cout<<"输出:";for(it=v.begin();it!=v.end();it++) //输出迭代器的值cout<<*it<<" ";cout<<endl;it-=1;cout<<"最后一个的值为:"<<*it<<" "<<endl;v.erase(it); //删除最后一个元素cout <<"元素个数:" <<v.size() << endl; //输出元素个数sort(v.begin(), v.end()); //vector排序cout<<"排序后:";for(it=v.begin();it!=v.end();it++) //输出vector元素cout << *it << " ";cout<<endl;v.insert(v.begin(),100) ; //在pos位置插入一个elemcout<<"第一个元素为:" <<v.front()<<endl;//输出第一个元素v.pop_back(); //去掉最后一个元素cout << "元素个数:" <<v.size() << endl;//输出元素个数v.clear(); //vector清空cout <<"清空后元素个数:" << v.size() << endl; //输出元素个数return 0;
}
C++ STL vector详解相关推荐
- C++中的STL算法详解
1.STL算法详解 STL提供能在各种容器中通用的算法(大约有70种),如插入.删除.查找.排序等.算法就是函数模板,算法通过迭代器来操纵容器中的元素.许多算法操作的是容器上的一个区间(也可以是整个容 ...
- STL 之vector详解
STL之vector容器详解 vector 容器 vector是C++标准模版库(STL,Standard Template Library)中的部分内容.之所以认为是一个容器,是因为它能够像容器一样 ...
- C vector详解
[导读]:vector是一个封装了动态大小数组的顺序容器(Sequence Container).跟任意其它类型容器一样,它能够存放各种类型的对象.可以简单的认为,vector是一个能够存放任意类型的 ...
- C++ STL之vector详解
转自http://blog.sina.com.cn/s/blog_9f1c0931010180cy.html Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操 ...
- C++STL笔记(四):vector详解
vector结构 一.vector的构造函数和析构函数 二.vector的非更易型操作 三.vector的赋值操作 四.vector用以直接访问元素的各项操作 五.vector的迭代器相关函数 六.v ...
- C++ Vector详解
Vector是STL库中的一种数据结构,本质上而言,Vector是一种动态数组结构,何为动态数组?动态数组指的是,在内存上面是连续地址,但是在每次初始化数组的时候,都事先分配好一大块内存,然后再分配给 ...
- C++STL面试详解
1.什么是C++STL? C++ STL从广义来讲包括了三类:算法,容器和迭代器. 算法包括排序,复制等常用算法,以及不同容器特定的算法. 容器就是数据的存放形式,包括序列式容器和关联式容器,序列式容 ...
- C++ STL List详解与使用方法
结构模型 可以看到是一个双向串列的结构. 头文件<List> List的能力 Lits对象自身提供了两个指针,用来指向第一个和最末一个元素,每个元素都有指针指向前一个和下一个元素,下面是L ...
- C++ -- vector详解
2019独角兽企业重金招聘Python工程师标准>>> 最近在重新学习C++,找到一篇比较好的介绍vector的文章,现记录下来,以下为转载,侵删. 1. 在C++中的详细说明 ve ...
- C++ STL容器详解
概述 容器是储存其他对象的对象.被储存的对象必须是同一类型.(如果你还没有学习OOP!其实你可以把它看成一个数组,只不过他有特殊的方法与使用技巧!) 分类 1. 序列容器 各元素之间有顺序关系的线性表 ...
最新文章
- 读入excel中的数据到数据库中
- [CODEVS 3147] 矩阵乘法 2
- Android学习笔记ListView
- 1081 Rational Sum (20 分)_22行代码AC
- linux时间轮 Timing-Wheel的实现
- pptx模块的安装与基本使用
- HDU 2181 哈密顿绕行世界问题
- Markdown公式编辑总结
- python爬取网站大数据_[Python]爬虫抓取大数据职位数据
- SEO怎么添加外链,这10个方法请收藏
- Neo4j学习笔记(三) 导入数据
- 蜗牛星际A单开启WOL功能
- 苹果AppStore审核规则标准指南!
- 服务器中搭建OA系统,oa系统搭建在云服务器上
- 我上岸了!深度剖析我的小红书 后台开发面经,以及我的 社招面试题目分享。
- 织梦教程:自定义模型会员无法投稿的解决方法
- 车载毫米波雷达的性能标准与测试方法
- 如何只用一部手机拍出绝美证件照(换底色,改尺寸,换装美颜,排版)?
- Bartender 4 for Mac菜单栏无忧管理
- 【AUTOSAR COM】达芬奇PDUR模块学习笔记