STL之vector函数详解
2016-04-17 21:43
267 查看
构造函数&析构函数
Vector的构造函数和析构函数 | |
vector<Elem> c | 产生一个空vector,其中没有任何元素 |
vector<Elem> c1(c2) | 产生另一个同型vector的副本(所有的元素都被拷贝) |
vector<Elem> c(n) | 利用元素的default构造函数产生一个大小为n的vector |
vector<Elem> c(n,elem) | 产生一个大小为n的vector,每个元素值都是elem |
vector<Elem> c(beg, end) | 产生一个vector,以区间[beg, end)做为元素初值 |
c.~vector<Elem>() | 销毁所有元素,并释放内存 |
非变动性操作
Vector的非变动性操作 | |
c.size() | 返回容器的大小 |
c.empty() | 判断容器是否为空,等价于size()==0,但可能更快 |
c.max_size() | 返回容器最大的可以存储的元素 |
c.capacity() | 返回重新分配空间前所能容纳的元素最大数量 |
reserve() | 如果容量不足,扩大之 |
c1 == c2 | 判断c1 是否等于c2 |
c1 != c2 | 判断c1是否不等于c2 |
c1 < c2 | 判断c1 是否小于c2 |
c1 > c2 | 判断c1 是否大于c2 |
c1 <= c2 | 判断c1是否小于等于c2 |
c1 >= c2 | 判断c1是否大于等于c2 |
赋值操作
Vectors的赋值操作 | |
c1 = c2 | 将c2的全部元素赋值给c1 |
c.assign(n, elem) | 复制n个elem,复制给c |
c.assign(beg, end) | 将区间[beg;end)内的元素赋值给c |
c1.swap(c2) | 将c1和c2元素互换 |
swap(c1,c2) | 同上,此为全局函数 |
直接存取操作
直接存取vectors元素的各项操作 | |
c.at(idx) | 返回索引idx标示的元素,如果idx越界,抛出异常 |
c[idx] | 返回索引idx标示的元素,不进行范围检查 |
c.front() | 返回第一个元素。不检查第一个元素是否存在 |
c.back() | 返回最后一个元素。不检查最后一个元素是否存在 |
备注:除了at()函数,其他函数发生越界,会引发未定义行为 |
安插&移除操作
Vector的安插、移除相关操作 | |
c.insert(pos,elem) | 在pos位置上插入一个elem副本,并返回新元素位置 |
c.insert(pos,n,elem) | 在pos位置上插入n个elem副本,无返回值 |
c.insert(pos,beg,end) | 在pos位置上插入区间[beg,end)内的所有元素的副本 没有返回值 |
c.push_back(elem) | 在尾部添加一个elem副本 |
c.pop_back() | 移除最后一个元素,无返回值 |
c.erase(pos) | 移除pos位置上的元素,返回下一个元素的位置 |
c.erase(beg, end) | 移除[beg, end)区间内的所有元素, 返回下一个元素的位置 |
c.resize(num) | 将元素数量改为num(如果size()变大了, 多出来的新元素都需以default构造函数完成) |
c.resize(num,elem) | 将元素数量改为num(如果size()变大了, 多出来的新元素都elem的副本) |
c.clear() | 移除所有元素,将容器清空 |
备注:安插和移除元素,都会使“作用点”之后的各个元素的iterator等失效,若发生内存重新分配,该容器身上的所有iterator等都会失效 |
相关文章推荐
- 浅析STL中的常用算法
- STL区间成员函数及区间算法总结
- C++ Vector用法详解
- c++ STL容器总结之:vertor与list的应用
- C++在成员函数中使用STL的find_if函数实例
- 大家注意vector, list, set, map成员函数erase
- java中vector与hashtable操作实例分享
- C++ vector删除符合条件的元素示例分享
- 关于STL中list容器的一些总结
- perl中的字符串操作函数chomp与chop介绍
- C++ Vector用法深入剖析
- vector与map的erase()函数详细解析
- 关于STL中的map容器的一些总结
- vector,map,list,queue的区别详细解析
- 详解C++编程中类的成员变量和成员函数的相关知识
- c++中string类成员函数c_str()的用法
- C++ vector的用法小结
- 指向类成员函数的指针其实并非指针
- 浅析stl序列容器(map和set)的仿函数排序
- STL list链表的用法详细解析