标准模板库中的向量(vector)
//C++数据结构与算法(第4版) Adam Drozdek 著 徐丹 吴伟敏<<清华大学出版社>>
头文件:#include<vector>
向量是最简单的STL容器,其数据结构与数组类似,占据着一个连续的内存块。由于内存位置是连续的,所以向量中的元素可以随机访问,访问向量中任何一个元素的时间也是固定的。存储空间的管理是自动的,当要将一个元素插入到已满的向量中时,会为向量分配一个更大的内存块,将向量中的元素复制进新的内存块,然后释放旧的内存块。所以,向量是一个灵活的数组,是能够动态改变自身大小的数组。
vector() //创建空向量
vector(size_type n, const T& el = T()) //用类型T的n个el副本创建一个向量(如果没有提供el,则使用默认的构造函数T())
vector(iterator first, iterator last) //用迭代器first和last指示范围中的元素构造一个向量
vector(const vector<T>& v) //复制构造函数
void assign(iterator first,iterator last) //删除向量中的所有元素,然后将迭代器first和last指示范围中的元素插入该向量。
void assign(size_type n, const T& el = T()) //删除向量中的所有元素,然后将el的n个副本插入该向量中。
T& at(size_type n) //返回向量中位置为n的元素
const T& at(size_type n) const //返回向量中位置为n的元素
T& back() //返回向量的最后一个元素
T& front() //返回向量的第一个元素
const T& front() const //返回向量的第一个元素
const T& back() const //返回向量的最后一个元素
iterator begin() //返回一个迭代器,该迭代器引用向量的第一个元素
iterator end() //返回一个迭代器,该迭代器位于向量的最后一个元素之后
const_iterator begin() const //返回一个迭代器,该迭代器引用向量的第一个元素
const_iterator end() const //返回一个迭代器,该迭代器位于向量的最后一个元素之后
size_type capacity() const //返回可以存储在向量中的元素数目
void clear() //清除向量中的所有元素
bool empty() const //如果向量不包括元素,则返回true,否则返回false
iterator erase(iterator i) //删除由迭代器i引用的元素,返回一个迭代器,引用被删除元素之后的元素
iterator erase(iterator first, iterator last) //删除迭代器first和last指示范围中的元素,返回一个迭代器,引用被删除的最后一个元素之后的元素
iterator insert(ierator i, const T& el = T()) //在迭代器i引用的元素之前出入el,并返回引用新插入元素的迭代器
void insert(iterator i, size_type n, const T& el) //在迭代器i引用的元素之前插入el的n个副本
void insert(iterator i, iterator first, iterator last) //在迭代器i引用的元素之前插入迭代器first和迭代器last指示的范围中的元素
size_type max_size() const //返回向量最大元素数
T& operator[] //下标运算符
const T& operator[] const //下标运算符
void pop_back() //删除向量的最后一个元素
void push_back(const T& el) //在向量的末尾插入el
reverse_iterator rbegin() //返回引用向量中最后一个元素的迭代器
const_reverse_iterator rbegin() const //返回引用向量中最后一个元素的迭代器
reverse_iterator rend() //返回引用向量中第一个元素之前的迭代器
const_reverse_iterator rend() const //返回引用向量中第一个元素之前的迭代器
void reserve(size_type n) //如果向量的容量小于n,该函数就为向量预留保存n项的足够空间
void resize(size_type n, const T& el = T()) //使向量保存n个元素,方法是:通过el再添加n-size()个位置,或者丢弃向量末尾溢出的size()-n个位置
size_type size() const //返回向量中的元素数量
void swap(vector<T>& v) //与另一个向量v交换内容
在 vector 容器中间添加(或删除)元素将使所有指向插入(或删除)点后面的元素的迭代器失效。
标准模板库中的向量(vector)的更多相关文章
- 8、泛型程序设计与c++标准模板库2、c++标准模板库中的容器
顺序容器类以逻辑线性排列方式存储元素,在这些容器类型中的元素在逻辑上被认为是连续的存储空间中存储的.顺序容器可用于存储线性群体. 在关联容器类中,元素的存储和检索基于关键字和元素与其他元素之间的关系, ...
- 8、泛型程序设计与c++标准模板库2.2向量容器
向量容器属于顺序容器,用于容纳不定长线性序列(即线性群体),提供对序列的快速随机访问(也称直接访问).这一点与c++语言支持的基本数组类型相同,但基本数据类型不是面向对象的.而面向对象的向量是动态结构 ...
- 标准模板库 STL 使用之 —— vector 使用 tricks
1. 从已有 vector(或数组)中复制 vector<int> a{....}; int an = a.size(); int half = an/2; vector<int&g ...
- 标准模板库中的队列(queue)
//C++数据结构与算法(第4版) Adam Drozdek 著 徐丹 吴伟敏<<清华大学出版社>> 队列容器默认由deque实现,用户也可以选择list容器来实现.如果用 ...
- 标准模板库中的栈(stack)
////C++数据结构与算法(第4版) Adam Drozdek 著 徐丹 吴伟敏<<清华大学出版社>> STL中的通用栈类实现为容器适配器:使用以指定方式运行的容器.栈容 ...
- STL(标准模板库) 中栈(stack)的使用方法
STL 中栈的使用方法(stack) 基本操作: stack.push(x) 将x加入栈stack中,即入栈操作 stack.pop() 出栈操作(删除栈顶),只是出栈,没有返回值 stack.t ...
- 标准模板库中的优先队列(priority_queue)
//C++数据结构与算法(第4版) Adam Drozdek 著 徐丹 吴伟敏<<清华大学出版社>> #include<queue> priority_queu ...
- 标准模板库中的链表(list)
//C++数据结构与算法(第4版) Adam Drozdek 著 徐丹 吴伟敏<<清华大学出版社>> 头文件:include<list> list() 创建一个 ...
- C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用
摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动 ...
随机推荐
- Linux - 常用GUI软件
1. gdebi -- 可以代替Ubuntu software安装软件 2. System monitor -- 监控流量 3. uget -- 下载软件 4. Okular -- pdf reade ...
- Django中url name
花了好长时间才明白这个name参数的含义.便写下来了备忘 当我们在url的时候,一般情况下都是使用很明确的url地址.如在网页里面使用<a href="/login"> ...
- 基于PowerCli自动部署和配置vmvare虚拟机
1 文档说明 2 Vsphere PowerCli安装和配置 3 PowerCli常用命令 4 创建自定义规范 5 虚拟机克隆与配置脚本 6 技术资料 1 文档说明 使用Vsphere管理虚拟机,在进 ...
- Python 中多进程、多线程、协程
进程: 一个运行的程序(代码)就是一个进程,没有运行的代码叫程序,进程是系统资源分配的最小单位,进程拥有自己独立的内存空间,所以进程间数据不共享.开销大. 线程: 调度执行的最小单位,也叫执行路径,不 ...
- replace() 方法用在字符串中用一些字符替换另一些字符实例
后台给返回的格式是这样的 控制台打印出来格式是这样的 现在需要将这个字符串的数据显示在界面上,1-网站:2-APP:3-客户端 for(var i = 0; i < list.length; i ...
- FTP 上传下载 进度条
11 /// <summary> /// 文件上传 /// </summary> /// <param name="filePath">原路径( ...
- pycharm 右键无法显示unittest框架&&解决右键只有unittest 运行如何取消右键显示进行普通run
上面是普通文件和unittest 导入的文件右键快捷键显示情况,可以看出两者快捷键都是ctr+shift+F10,如果你是右键模式想运行unitest,但是又不知道哪里配置unittest直接运行快捷 ...
- 「JSOI2010」找零钱的洁癖
「JSOI2010」找零钱的洁癖 传送门 个人感觉很鬼的一道题... 首先我们观察到不同的数最多 \(50\) 个,于是考虑爆搜. 但是这样显然不太对啊,状态数太多了. 然后便出现了玄学操作: \(\ ...
- idna与utf-8编码漏洞
来自Black hat 2019 原理什么是IDN?国际化域名(Internationalized Domain Name,IDN)又名特殊字符域名,是指部分或完全使用特殊文字或字母组成的互联网域名, ...
- 19年读100本书之第二本--《OKR工作法》-克里斯蒂娜 沃特克
0,一句话概括书的内容? OKR(objective key result),即目标与关键结果. 1,我从这本书能得到什么? 2,核心内容是什么? 3,我要怎么做?