目录
Vector
Capacity
Elements access
Modifiers
Allocator
Non-member Notice overloads
Template specializations
Vector
-
#include<vector> using namespace std;
-
矢量容器 :单向开口的连续内存空间,底层封装:数组;
-
预留内存空间不够时,可以动态扩展(容器满了则新建容器同时进行拷贝);
-
顺序序列:容器元素按照严格的线性顺序排列;
-
动态数组:支持对序列中任意元素进行快速直接访问,高效的随机访问的容器;
-
越靠后的插入或删除执行效率越高,删除不会释放限制的空间;
-
拥有一段连续的内存空间,支持随机存取,但在中间进行插入和删除会造成内存块的拷贝;
-
Vector 接口函数介绍。文章来源:https://www.toymoban.com/news/detail-413647.html
文章来源地址https://www.toymoban.com/news/detail-413647.html
Capacity
Name | Role | Notice |
---|---|---|
size | 返回矢量实际存储元素数目(实际数据量) | |
max_size | 返回矢量所能存储的最大的元素数目 | |
resize | 更改矢量实际存储,可自定义默认值填充 | resize(num) resize(num, elem) |
capacity | 不分配内存的情况下可以存储的最多元素个数 | |
empty | 判断矢量存储是否为空 | |
reserve | 更改矢量 capacity,避免 push_back 自动分配 | reverse(len),预留空间,不可初始化,不可赋值 |
shrink_to_fit | 请求降低存储使得 capacity 和 size 匹配 |
Elements access
Name | Role | Notice |
---|---|---|
operator[ ] | 迭代器访问容器元素 | |
at | 更加安全的访问元素,能判别是否越界并确定程序中止 | |
front | 返回第一个元素的引用 | |
back | 返回最后一个元素的引用 | |
data (c11)
|
返回一个指向数组中第一个元素的指针(向量内部使用) |
Modifiers
Name | Role | Notice |
---|---|---|
assign | 替换旧元素为向量元素分配新值,也可修改向量大小 | assign(begin, end) assign(n, elem) |
push_bach | 向矢量的末尾添加元素 | |
pop_back | 删除矢量最后一个元素 | |
insert | 指定位置插入一个或多个元素(构造并复制) | insert(iter, elem) insert(iter,count,elem) insert(pos, _first, _last) |
erase | 删除元素 | erase(pos) erase(_first, _last) |
swap | 交换容器,内存释放(拷贝构造,capacity == size ) | |
clear | 清除容器 | |
emplace | 指定位置插入一个元素(就地构造,转发实现) | |
emplace_back | 矢量末尾插入一个元素(就地构造,转发实现) |
Allocator
Name | Role | Notice |
---|---|---|
get_allocator | 返回矢量的内存分配器 |
Non-member Notice overloads
Name | Role | Notice |
---|---|---|
relational operators | 关系型函数( =、>、<) | |
swap | 交换容器的内容 |
Template specializations
Name | Role | Notice |
---|---|---|
vector | 特殊的标准容器,1 bit 存储(byte 可实现动态位集),返回的不是 bool &,而是一个代理对象 |
到了这里,关于STL : vector 矢量容器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!