浅谈Vector

@

  这里我主要说的是C++的vector,vector是一种顺序容器,顺序容器区别去有序容器,也就是的存储位置与大小无关,只与数据加入文件是的顺序有关。顺序容易还包括deque、list、forword_list、array、string。

注意: 随着C++泛型编程的逐渐强大,在实际操作中尽量减少使用数组,因为容器的出现,可以使我们在实际开发项目中将数组的使用降至最低。

1、容器基本操作

类型别名 含义
iterator 顾名思义,迭代器
const_iterator 只读迭代器
size_type 无符号整型,最大值为容器的大小
difference_type 带符号整形,两个迭代器之间的距离
value_type 元素类型
const_reference 元素const左值类型

2、vector 初始化

#include <vector>
using namespce std;
int main()
{
vector<int> vec ; //默认构造函数
vector<int> vec2(vec) ; //拷贝构造函数
vector<int> vec3(b,e); //利用迭代器进行初始化
vector<int> vec4{1,2,3,4}; //常用的初始化操作
vector<int> vec5(10); //创建10个元素,值默认为0
vector<int> vec6(10,6); //创建10个元素,值初始化6
}

  为了书写方便,后面的书写采用简便书写的方式,这里默认大家已经有了main函数;

3、vector的赋值与swap

vec = vec2; //将vec2的元素赋值给vec2
vec = {1,2,3,4,5}; //vec替换为列表元素
vec.swap(vec2); //交换两者的元素
swap(vec1,vec2); //等价 vec.assign(b,e); //vec里面的元素换为迭代器b e之间的内容
vec.assign(n,t);//vec里面的元素更改为n个t
vec.assign(i1); //vec的内容更改为列表i1;

4、vector的增删改除

1.增加元素

vec.insert(p,t);// 在迭代器p所指的位置之前插入元素t,返回新插入元素的迭代器      直接法
vec.insert(p,n,t); //与vec.insert(p,array)相同 抽象法
vec.insert(p,b,e); //在迭代器p位置插入迭代器b,e之间的元素,返回新插入第一个元素的迭代器 间接法
vec.insert(p,array); //在迭代器p位置插入元素值列表array,返回第一个元素的迭代器 直接法 vec.push_back(t);//在vec末端插入元素t,返回void
vec.push_front(t);//在vec开始端插入t,返回void

2.访问元素

vec.back();  //返回最后一个元素的引用
vec.front(); //返回第一个元素的引用 vec[n]; //下标访问 返回引用
vec.at[n]; //at访问 比较安全 如果越界 抛出out of range 的异常 返回引用

3.删除元素

vec.pop_back(); //删除vec的尾元素 返回void
vec.pop_front();//删除vec的首元素,返回void vec.erase(p); //删除迭代器p所指的元素 返回删除元素的前一个元素的迭代器
vec.erase(b,e);//删除迭代器b,e之间的元素 ,返回最后一个被删除元素的之后的迭代器 vec.clear(); //删除vec的所有元素

4.元素的大小

vec.size();//返回元素的数目
vec.max_size();//返回可保存元素的最大大小
vec.empty();//vec是否为空

最新文章

  1. [教程] [承風雅傳HSU]用ES4封裝Win7---ES4 Win7封裝教程(未完待續)
  2. Google Play笔记之上架
  3. HDU2298 Toxophily
  4. 对C++下struct 和 类默认继承的认识
  5. cvSave in VS2010 or Linux
  6. 【GDI+】继续图形的问题
  7. C++实现对树的创建和前中后序遍历
  8. #if defined和#if !defined(c语言的宏定义)
  9. Chapter 1 Mr.Sherlock Holmes
  10. Blend4 的安装和配置
  11. Ubuntu16.04下安装redis
  12. java设计师初入职场,如何站稳脚跟
  13. cf796c 树形,思维题
  14. cin输入bug
  15. dlib VS2013 face关键点检测与对齐
  16. C++类的成员函数的形参列表后面的const
  17. vue实现首页导航切换不同路由的方式(二)【使用vuex实现的】
  18. cocos2d-x 3.0 使用.plist图片集方法
  19. python通过mongoengine中connect函数连接多个数据库
  20. [Luogu 1533] 可怜的狗狗

热门文章

  1. 去掉input框的数字箭头
  2. thinkPHP中的文章详情页实现“上一篇下一篇”功能经验分享
  3. 配置Office Excel运行Python宏脚本
  4. Java生成二维码(Java程序都可以使用)
  5. Nginx入门(一):在centos上安装nginx
  6. Enum与最佳単例设计
  7. Dart语法学习
  8. 杭电多校第十场 hdu6435 CSGO 二进制枚举子集
  9. 2017 省赛选拨 火车入站 CSU 1757 模拟
  10. React-router总结