目录
Vector
Capacity
Elements access
Modifiers
Allocator
Non-member Notice overloads
Template specializations
Vector
-
#include<vector> using namespace std;
-
矢量容器 :单向开口的连续内存空间,底层封装:数组;
-
预留内存空间不够时,可以动态扩展(容器满了则新建容器同时进行拷贝);
-
顺序序列:容器元素按照严格的线性顺序排列;
-
动态数组:支持对序列中任意元素进行快速直接访问,高效的随机访问的容器;
-
越靠后的插入或删除执行效率越高,删除不会释放限制的空间;
-
拥有一段连续的内存空间,支持随机存取,但在中间进行插入和删除会造成内存块的拷贝;
-
Vector 接口函数介绍。
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 &,而是一个代理对象 |
|
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)