说明:vector是C++中一个的容器类,它用于存放类型相同的元素,利用成员函数及相关函数可以方便的对元素进行增加或删除,排序或逆序等等。一个 vector 的容量(capacity)永远大于或等于其大小(size),一旦容量等于大小,便是满载,下次再有新增元素,整个 vector 容器就得重新申请一块更大的连续容量空间来存储所有的元素(包括原有的和新增的),然后原来的空间被释放

注意:vector是一个动态数组,可以动态增加数组的大小(size)。所谓动态增加大小,并不是在原空间之后续接新空间(因为无法保证原空间之后尚有可配置的空间),而是一块更大的内存空间,然后将原数据拷贝到新空间,并释放原空间。因此,对 vector 的任何操作,一旦引起空间的重新配置,原空间的地址就变了。

1.包含的头文件:#include<vector>

2.构造函数

 vector<T> v; //默认构造函数,T是数据类型
vector<T> v1(v.begin(),v.end()); //将容器v参数区间的元素拷贝到容器v1
vector<T> v2(n,elem); //构造函数将n个elem元素赋给v2
vector<T> v3(v1); //拷贝构造函数
vector<int> v4{1,2,3,4,5}; //指定元素初始化容器
//用数组初始化一个vector容器
int arr[] = {,,,};
vector<int> v4(arr,arr+sizeof(arr)/sizeof(int));

3.常用赋值函数

 v.assign(v1.begin(),v1.end()); //将v1固定区间内的元素拷贝赋值给v
v.assign(n.elem); //将n个elem元素拷贝赋值给v
v = v1; //将v1赋给v(重载了等号操作符)
v.swap(v1); //将两个容器的元素进行交换

4.size操作

 v1.si ze(); //返回v1中的元素个数
v1.empty(); //判断v1是否为空
v1.resize(int num,elem);
//重新指定容器的长度为num,若容器变长,则以elem填充新位置,反之末尾元素被删除(第二个参数有默认值)
v1.capacity(); //容器的容量
v1.reserve(int len); //容器预留len个元素容量,预留位置不初始化,元素不可访问,size为0

5.数据存取

 v1.at(i); //返回索引i所指的数据,越界抛异常
v1[i]; //返回索引i所指的数据,越界报错
v1.front(); //返回容器的第一个数据
v1.back(); //返回容器的最后一个数据

6.插入和删除

 v1.insert(pos,count,ele); //迭代器指向位置pos插入conut个元素ele
v1.push_back(); //尾部插入元素ele
v1.pop_back(); //删除尾部元素
v1.erase(pos1,pos2); //删除迭代器pos1到pos2之间的元素
5 v1.erase(pos); //删除迭代器指向的元素
v1.clear(); //删除容器中的所有元素

(C/C++学习)1.C++中vector的使用的更多相关文章

  1. PHP的学习--在Atom中使用XDebug(Mac)

    之前写过一篇博客<PHP的学习--在sublime中使用XDebug(Ubuntu)>,讲了在Ubuntu系统 sublime 中配置 XDebug,其实配置好之后,我也很少用,原因有两点 ...

  2. c++中vector的用法详解

    c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...

  3. 各种报错各种坑 webpack让我在学习的过程中一度想要放弃

    由于拓展部分不是必须的,只是可以增强用户体验,但是有些时候页面给分页预留的位置不够,这个时候我们就可以通过设置来除去这一部分 子分区由两种创建方法,一种是不定义每个子分区子分区的名字和路径由分区决定, ...

  4. 【腾讯Bugly干货分享】深度学习在OCR中的应用

    本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5809bb47cc5e52161640c5c8 Dev Club 是一个交流移动 ...

  5. 学习网页制作中如何在正确选取和使用 CSS 单位

    在 CSS 测量系统中,有好几种单位,如像素.百分比.英寸.厘米等等,Web 开发人员很难了解哪些单位在何处使用,如何使用.很多人习惯了总是使用同一种单位,但这一决定可能会严重限制你的设计的执行. 这 ...

  6. JavaScript学习13 JavaScript中的继承

    JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式 ...

  7. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  8. C++的STL中vector内存分配方法的简单探索

    STL中vector什么时候会自动分配内存,又是怎么分配的呢? 环境:Linux  CentOS 5.2 1.代码 #include <vector> #include <stdio ...

  9. Java学习-045-目录中文件拷贝

    挺晚的了,直接上码.敬请各位小主参阅,若有不足之处,敬请指正,非常感谢! 目录文件拷贝源码: /** * <strong>目录拷贝</strong><br> * & ...

随机推荐

  1. HDU 2348

    DFS+博弈. 假设存在两数(x,y),且x<y.对于(x+ky,y)k>=2,只能转移向两种状态(x+y,y),或者(x,y).而对于(x+y,y)只能向(x,y)转移,那么,可知,无论 ...

  2. ASP.NET快速开发框架不得不做的几个功能、高大上档次后台管理UI界面

    俗话说磨刀不误砍柴工,确实,一早上花一个小时去磨刀一天下来肯定能多砍很多柴.我们做软件开发也是同样的道理,有套好开发框架在手里,开发也是事半功倍.那么一套MVC快速开发框架至少得具有哪些功能才能帮我们 ...

  3. 【BZOJ 1370】 团伙

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1370 [算法] 并查集 + 拆点 [代码] #include<bits/std ...

  4. CentOS/ubuntu iscsi initior target

    http://docs.oracle.com/cd/E26926_01/html/E25884/fpjwy.html iscsiadm: initiator reported error (24 - ...

  5. Linux下查看操作系统的位数和系统名称版本信息

    Linux下如何明确地查看操作系统的位数 如何知晓操作系统是32位还是64位?这里介绍一种简单的方式: [plain] [root@localhost mysql-5.1.57]# getconf L ...

  6. python 46 边界圆角 、a_img_list标签 、伪类选择器

    一:边界圆角 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...

  7. python 7:del 列表指定元素、list.pop(索引)、list.remove(元素值)(删除列表指定元素,且不可再使用;默认索引-1,弹出指定列表元素,可再使用;移除列表指定第一个元素)

    bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles) del bicycles[0] #删除指定列表元 ...

  8. 如何正确从windows系统(自己电脑)远程访问Linux系统(他人电脑)的mysql数据库(图文详解)

    这里,需要Linux系统开了root用户,我这给root用户密码为root.     同时,在mysql -uroot -proot执行进去之后 update user setHost='%' whe ...

  9. CruiseControl.NET 的安装与配置

    CC.NET 是 CruiseControl.NET 的简称,官方网站在这里. 官方的定义是自动连续集成服务, 使用Microsoft .NET Framework实现. 另外它还有Java的版本叫做 ...

  10. Ionic3 环境搭建以及基础配置实现(更新中)

    GitHub:https://github.com/Teloi 环境配置输入以下命令安装 Ionic (如果刚才设置了淘宝镜像源,可以使用 cnpm 代替 npm):npm install -g io ...