STL容器 -- Vector
核心:Vector 是 STL 里的一个向量容器,可以像数组那样进行随机访问,能在尾部插入元素,对于元素的删除和插入可以动态管理内存.
头文件: #include <vector>
构造函数:
vector<int> v; //构造一个存储 int 型变量的 vector
vector<int> v(n, value) //构造一个初始含有 n 个 value 的 vector
vector<int> v1(v2) //构造一个vector v1拷贝 v2 内的值
vector<int> v(begin(), end()) //构造一个 vector 从迭代器[ begin(), end() ) 拷贝而来
常用函数:
v.at(pos) //即 v[pos], 但是不会访问到越界元素
v.back() //返回 v 最末尾元素的引用
v.front() //返回 v 起始元素的引用
v.pop_back() //删除当前 v 末尾的元素
v.push_back(value) //添加 value 到 v 的末尾
vector<int> v(, ) //则 v.front() = 0 v.back() = 4
v.begin() //返回指向 v 起始元素的迭代器
v.end() //返回指向 v 末尾元素下一个位置的迭代器, 访问最后一个元素,则需要自减1
v.clear() //删除当前 v 内的所有元素
v.empty() //判断 v 内是否有元素
v.erase(it) //删除指定位置(迭代器) 元素的值
v.erase(st, ed) //删除区间(迭代器)[st, ed)内的所有元素
v.insert(it, value) //在指定位置(迭代器)前插入一个元素 value
v.insert(it, n, value) //在指定位置(迭代器)前插入 n 个值为 value 的元素
v.insert(it, st, ed) //在指定位置(迭代器)前插入迭代器[st, ed) 之间的元素
v.max_size() //返回 v 可容纳元素的最大数值
v1.swap(v2) //交换两个 vector
常用运算:
vector<int> v1, v2;
v1 == v2 //具有相同的元素, 相同的容量
v1 != v2
v1 <= v2 //按照字典序比较
v1 >= v2
v1 < v2
v1 > v2
v[] //访问某个特定的值
STL容器 -- Vector的更多相关文章
- 从零开始写STL—容器—vector
从0开始写STL-容器-vector vector又称为动态数组,那么动态体现在哪里?vector和一般的数组又有什么区别?vector中各个函数的实现原理是怎样的,我们怎样使用会更高效? 以上内容我 ...
- [C++]STL容器Vector的内存释放
直接抛出两句话,说明到底应该如何释放Vector占用的内存. “vector的clear不影响capacity,你应该swap一个空的vector.” <Effective STL>中的“ ...
- STL容器vector应用注意事项
[1]提前分配足够空间以免不必要的重新分配和复制代价 关于vector容器重新分配和复制及析构释放的代价,请参见随笔<STL容器之vector>. 应用示例对比代码如下: #include ...
- STL容器 vector,list,deque 性能比较
C++的STL模板库中提供了3种容器类:vector,list,deque对于这三种容器,在觉得好用的同时,经常会让我们困惑应该选择哪一种来实现我们的逻辑.在少量数据操作的程序中随便哪一种用起来感觉差 ...
- STL - 容器 - vector简单应用
VectorTest.cpp #include <vector> #include <iostream> #include <string> #include &l ...
- ACM常用STL容器
// STL(标准模板库),由三大部分组成:容器,算法,迭代器 // STL六大组件:container(容器),algorthm(算法),iterator(迭代器) // function obje ...
- 跟我一起学STL(2)——vector容器详解
一.引言 在上一个专题中,我们介绍了STL中的六大组件,其中容器组件是大多数人经常使用的,因为STL容器是把运用最广的数据结构实现出来,所以我们写应用程序时运用的比较多.然而容器又可以序列式容器和关联 ...
- 【转】c++中Vector等STL容器的自定义排序
如果要自己定义STL容器的元素类最好满足STL容器对元素的要求 必须要求: 1.Copy构造函数 2.赋值=操作符 3.能够销毁对象的析构函数 另外: 1. ...
- 带你深入理解STL之Vector容器
C++内置了数组的类型,在使用数组的时候,必须指定数组的长度,一旦配置了就不能改变了,通常我们的做法是:尽量配置一个大的空间,以免不够用,这样做的缺点是比较浪费空间,预估空间不当会引起很多不便. ST ...
随机推荐
- Java基础-synchronized关键字的用法(转载)
synchronized--同步 顾名思义是用于同步互斥的作用的. 这里精简的记一下它的使用方法以及意义: 当synchronized修饰 this或者非静态方法或者是一个实例的时候,所同步的锁是加在 ...
- 让块元素在同一行显示的方法: float 和inline-block
float: 定义:按照一个指定的方向移动,遇到父级的边界或者相邻的浮动元素就会停下来(不完全脱离文档流) 值: left.right.none 特点: 1.浮动的块元素可以在一行显示,宽度是被内容撑 ...
- 课程设计——利用信号量实现读-写者问题(JAVA)
package cn.Douzi.ReadWriter; import java.util.Scanner; public class ReadWrite { static public int co ...
- 解决 sun.security.validator.ValidatorException: PKIX path building failed
今天用java HttpClients写爬虫在访问某Https站点报如下错误: sun.security.validator.ValidatorException: PKIX path buildin ...
- [数据库中间件]将用户添加到DB2组授权
1.将用户oracle添加到db2的用户组中,命令如下: usermod -a -G db2iam #将用户添加到组中并不改变当前所属组 注:以下与主题无关,只是列举一些关于用户的命令 id user ...
- spring 添加controller返回值绑定
@EnableWebMvc @Configuration public class Config { @Autowired private RequestMappingHandlerAdapter h ...
- opencv 高级拼接函数Stitcher
Stitcher https://docs.opencv.org/trunk/d8/d19/tutorial_stitcher.html http://blog.csdn.net/czl389/art ...
- BAT-快速切换JDK1.6/1.7
Code: @echo OFF rem 修改背景/字体颜色为黑/绿 color 0A rem 自动设置JDK环境变量,本程序不会对 [系统环境变量] 造成破环!不需要重启!! rem 没有%%JAVA ...
- ahttp
# -*- coding: utf-8 -*- # @Time : 2018/8/20 14:35 # @Author : cxa # @File : chttp.py # @Software: Py ...
- Codeforces Round #453 (Div. 1)
Codeforces Round #453 (Div. 1) A. Hashing Trees 题目描述:给出一棵树的高度和每一层的节点数,问是否有两棵树都满足这个条件,若有,则输出这两棵树,否则输出 ...