//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)的更多相关文章

  1. 8、泛型程序设计与c++标准模板库2、c++标准模板库中的容器

    顺序容器类以逻辑线性排列方式存储元素,在这些容器类型中的元素在逻辑上被认为是连续的存储空间中存储的.顺序容器可用于存储线性群体. 在关联容器类中,元素的存储和检索基于关键字和元素与其他元素之间的关系, ...

  2. 8、泛型程序设计与c++标准模板库2.2向量容器

    向量容器属于顺序容器,用于容纳不定长线性序列(即线性群体),提供对序列的快速随机访问(也称直接访问).这一点与c++语言支持的基本数组类型相同,但基本数据类型不是面向对象的.而面向对象的向量是动态结构 ...

  3. 标准模板库 STL 使用之 —— vector 使用 tricks

    1. 从已有 vector(或数组)中复制 vector<int> a{....}; int an = a.size(); int half = an/2; vector<int&g ...

  4. 标准模板库中的队列(queue)

    //C++数据结构与算法(第4版) Adam Drozdek 著  徐丹  吴伟敏<<清华大学出版社>> 队列容器默认由deque实现,用户也可以选择list容器来实现.如果用 ...

  5. 标准模板库中的栈(stack)

    ////C++数据结构与算法(第4版) Adam Drozdek 著  徐丹  吴伟敏<<清华大学出版社>> STL中的通用栈类实现为容器适配器:使用以指定方式运行的容器.栈容 ...

  6. STL(标准模板库) 中栈(stack)的使用方法

    STL 中栈的使用方法(stack) 基本操作: stack.push(x)  将x加入栈stack中,即入栈操作 stack.pop()  出栈操作(删除栈顶),只是出栈,没有返回值 stack.t ...

  7. 标准模板库中的优先队列(priority_queue)

    //C++数据结构与算法(第4版) Adam Drozdek 著  徐丹  吴伟敏<<清华大学出版社>> #include<queue> priority_queu ...

  8. 标准模板库中的链表(list)

    //C++数据结构与算法(第4版) Adam Drozdek 著  徐丹  吴伟敏<<清华大学出版社>> 头文件:include<list> list() 创建一个 ...

  9. C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用

    摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动 ...

随机推荐

  1. Python - 私有属性(双下线的变形)

    __x会自动变形为_类名__x 正常情况 class A: def foo(self): print('from A') def test(self): self.foo() class B(A): ...

  2. Docker Learning Notes

    Docker简介 是什么 问题:为什么会有docker出现 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置.作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的 ...

  3. pdf.js的使用 (3)真实项目分享

    需求:a.jsp页面要做一个pdf的预览功能,我采用layer.open()弹窗的形式来预览pdf 1.在a.jsp点击文件然后弹出窗口(其实是弹出b.jsp) var lay=layer.open( ...

  4. NOIP2016换教室 BZOJ 4720

    BZOJ 4720 换教室 题目描述: 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节 课程安排在n个时间段上.在第i(1≤i≤n)个时间段上 ...

  5. 获取Linux系统运行情况信息

    代码: #include <stdio.h> #include <unistd.h> /* usleep() */ #include <stdlib.h> #inc ...

  6. arcPy实现要素图层数据的复制(选择特定字段填写属性)

    >>> import arcpy>>> fc=r"D:\楚雄州数据\testdata.gdb">>> editor=arcpy ...

  7. Git - reset和checkout的区别

    参考 https://segmentfault.com/a/1190000006185954 1. Git的所有操作实际上是在操作这三个区域的状态(或内容) 2. 区别 checkout是会修改HEA ...

  8. 2019年springmvc面试高频题(java)

    前言 2019即将过去,伴随我们即将迎来的又是新的一年,过完春节,马上又要迎来新的金三银四面试季.那么,作为程序猿的你,是否真的有所准备的呢,亦或是安于本职工作,继续做好手头上的事情. 当然,不论选择 ...

  9. Linux开发环境配置笔记[Ubuntu]

    Linux(Ubuntu18.04)安装Chrome浏览器 1.将下载源加入到系统的源列表(添加依赖) sudo wget https://repo.fdzh.org/chrome/google-ch ...

  10. Hibernate笔记一

    背景 jdbc的优缺点 A:直接操作底层,提供了简单,便捷的访问数据库方法,跨平台比较强,灵活,可以写很多赋值的SQL语句:是最底层的数据库操作,所以效率比较高,Sql语句可以自己选择写,采用效率最高 ...