一、构造、 拷贝、析构函数
vector< type> c; //创建空的vector,没有元素.
vector< type> c1(c2); //产生一个同类型的vector的副本.
vector< type> c(n); //利用元素的默认构造函数产生一个大小为n的vecror.
vector< type> c(n,elem); //产生一个大小为n的vector,每个元素之都是elem.
vector< type>c(beg,end); //产生vector,以区间[begin,end)作为元素初值.
~vector< type>(); //销毁所有元素,并释放内存
二、赋值操作
函数 | 说明 |
---|
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) | 同上,元素互换 |
三、非变动性操作
函数 | 说明 |
---|
size() | 返回vector中元素的数量 |
empty() | 判断vector是否为空 |
max_size() | 返回vector中可容纳的元素最大数量 |
capacity() | 返回重新分配空间前所能容纳的元素最大数量 |
reserve() | 若容量不足,扩大 |
四、变动性操作
函数 | 说明 |
---|
c.insert(pos,elem) | 在pos位置上插入一个elem副本,并返回新元素位置 |
c.insert(pos,n,elem) | 在pos位置上插入n个elem副本,无返回值 |
c.insert(pos,beg,end) | 在pos位置上插入区间[begin,end]内所有元素的副本,无返回值 |
c.push_back(elem) | 在尾部插入一个elem副本 |
c.pop_back() | 移除最后一个元素,(但不回传值) |
c.erase(pos) | 移除pos位置上的元素,返回下一个元素的位置 |
c.erase(beg,end) | 移除[beg,end]区间内的所有元素,返回下一个元素的位置 |
c.erase(pos) | 移除pos位置上的元素,返回下一个元素的位置 |
c.erase(beg,end) | 移除[beg,end]区间内的所有元素,返回下一个元素的位置 |
c.resize(num) | 将元素的数量改为num,(如果size()变大了,多出来的新元素都需以默认构造函数构造) |
c.resize(num,elem) | 将元素的数量改为num(如果size()变大了,多出来的新元素都是elem的副本) |
c.clear() | 移除所有元素,将容器清空 |
五、元素存取
函数 | 说明 |
---|
c.at(idx) | 返回索引idx所标示的元素,如果idx越界,抛出out_of_range |
c[idx] | 返回索引idx所标示的元素,不进行范围检查 |
c.front() | 返回第一个元素,不检查第一个元素是否存在 |
c.back() | 返回最后一个元素,不检查最后一个元素是否存在 |
六、迭代器相关函数
函数 | 说明 |
---|
c.begin() | 返回一个随机存取迭代器,指向第一个元素 |
c.end() | 返回一个随机存取迭代器,指向最后元素的下一个位置 |
c.rbegin() | 返回一个逆向迭代器,指向逆向迭代器第一个元素 |
c.rend() | 返回一个逆向迭代器,指向逆向迭代器的最后元素的下一个位置 |