标准模板库中的向量(vector)

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

向量是最简单的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交换内容

原文地址:https://www.cnblogs.com/Toya/p/9707614.html

时间: 2024-10-07 07:58:02

标准模板库中的向量(vector)的相关文章

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

//C++数据结构与算法(第4版) Adam Drozdek 著  徐丹  吴伟敏<<清华大学出版社>> #include<queue> priority_queue(comp f()) //创建一个空的优先队列,使用一个双变量的布尔函数f对队列中的元素排序 priority_queue(iterator first, iterator last,comp()) //创建一个优先队列,使用一个双变量的布尔函数f对队列中的元素排序:队列初始化为迭代器first和last之

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

摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动态数组)STL vector进行分析和总结. 引言 因为前段时间对台大的机器学习基石和技法课程进行了学习,发如今详细的实现中经常涉及到各种类型的数据结构,比方线性表.二叉树.图等,在使用这些数据结构时感到有些吃力.主要是对一些主要的数据结构理解的不够.所以趁着暑假假期.近期一段时间总会抽出时间复习一

标准模板库(STL)学习探究之vector容器

标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据.为了可以使用vector,必须在你的头文件中包含下面的代码:#include <vector>构造函数. Vectors 包含着一系列连续存储的元素,其行为和数组类

C++标准模板库之vector(Boolan)

vector是C++标准模板库中一种常见的容器,像数组类似,vector使用连续的存储空间用来保存元素,使用指针偏移可以快速的访问元素(通常认为是O1复杂度),与数组不同的是它的大小是可变的,在vector内部使用动态分配的内存保存元素,这意味着vector增长时需要重新分配内存,并将原来的原来的数据复制到该内存单元,需要很大的开销,因此vector并不会在每次新增元素时候都重新分配内存空间.vector实际容量(capacity)通常比实际大小(size)大得多.参考数据结构(C++语言版),

C++ Primer(第五版)学习笔记_3_标准模板库vector(2)

C++ Primer(第五版)学习笔记_3_标准模板库vector(2) 欢迎大家阅读参考,如有错误或疑问请留言纠正,谢谢 6.元素的插入 insert()方法可以在vector对象的任意位置前插入一个新的元素,同时,vector自动扩张一个元素空间,插入位置后的所有元素依次向后挪动一个位置. 要注意的是,insert()方法要求插入的位置,是元素的迭代器位置,而不是元素的下标. #include <iostream> #include <vector> using namespa

C++ Primer(第五版)学习笔记_2_标准模板库vector(1)

C++ Primer(第五版)学习笔记_2_标准模板库vector(1) 欢迎大家阅读参考,如有错误或疑问请留言纠正,谢谢 向量容器vector不但能像数组一样进行随机访问,还能在尾部插入元素,完全可以替代数组. 值得注意的是,vector具有内存自动管理的功能,对于元素的插入和删除,可以动态调整所占的内存空间. 容器vector的下标是从0开始的,如果vector容器的大小是n,则元素下标为0~n-1,这和数组的一样的.不一样的是,vector可以随时调整其大小. vector重要的方法有三个

标准模板库

-------------------siwuxie095 在长期的编码中,聪明的程序员们发现:有一些代码经常碰到, 而且需求特别稳定,于是,各大公司在出售自己的 IDE 环境时, 就会把这些模板代码打包,一起销售 慢慢地,这些大公司之间就达成了某种共识,觉得应该把这些 涉及模板的通用代码进一步的统一和规范,于是,大家慢慢形 成了一套 C++ 的标准模板,就是现在所看到的标准模板库 标准模板库 标准模板库,即 Standard Template Lib,简称为 STL 标准模板库所涉及的内容非常

C++模板引出的标准模板库-----&gt;初涉

C++中模板,是相当重要的一部分,前面提到过一些基础,关于模板中需要注意的问题,会在最近整理出来,今天想说的,是由模板引出的标准模板库. 当初经常会被推荐看<STL源码剖析>这本书,听说很厉害,是C++高手都需要走过的路,可一直都不知道STL是什么,也一直忘记去查,今天整理出来的一些东西,最起码可以让未了解过这方面的童鞋认识一下. C++标准模板库,即STL:Standard Template Lib,STL的产生,是必然的.在长期的编码过程中,一些程序员发现,有一些代码经常用到,而且需求特别

C++标准库和标准模板库

C++强大的功能来源于其丰富的类库及库函数资源.C++标准库的内容总共在50个标准头文件中定义. 在C++开发中,要尽可能地利用标准库完成.这样做的直接好处包括: (1)成本:已经作为标准提供,何苦再花费时间.人力重新开发呢: (2)质量:标准库的都是经过严格测试的,正确性有保证: (3)效率:关于人的效率已经体现在成本中了,关于代码的执行效率要相信实现标准库的大牛们的水平: (4)良好的编程风格:采用行业中普遍的做法进行开发. 一.C++标准库 C++标准库的内容分为10类, 分别是:C1.语