#include
//将元素置于动态数组中加以管理
namespace std
{
template
>
class vector;
}
//vector是一个有序群集,支持随机存取。
//在末端添加或删除元素时,vector的性能相当好,
//但在前段或中部添加或删除元素时,性能就不怎么样了。
//vector的操作函数
//构造,赋值,析构
vector
c;//产生一个空vector;
vector
c1(c2);//将c2复制到c1;
vector
c(n);//产生一个大小为n的vector; vector
c(n,elem);//产生一个大小为n的vector,每个元素都是elem; vector
c(beg,end);//产生一个vector,以[beg,end)作为元素初值; c.~vector
();//释放内存,销毁元素; //非变动性操作 c.size();//返回元素数量; c.empty();//判断是否为空; c.max_size();//可用空间的最大数量; capacity();//重新分配前空间能容纳的最大数量; reverse();//容量不足,扩大; c1==c2; c1!=c2; c1
c2; c1<=c2; c1>=c2;//判断c1和c2的大小关系; //赋值 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);//同上; //元素存取 c.at(idx);//返回idx所指元素,如果越界,抛出out_of_range; c[idx];//返回idx所指元素,不进行越界检查; c.front();//返回第一个元素,不进行存在检查; c.back();//返回最后一个元素,不进行存在检查; //迭代器相关函数 c.begin();//返回一迭代器,指向第一元素 c.end();//返回一迭代器,指向最后一元素下一位置; c.rbegin();//返回一逆向迭代器,指向逆向第一元素; c.rend();//返回一逆向迭代器,指向逆向迭代的最后一元素下一位置; //vector迭代器持续有效,除非 //1.使用者在较小索引位置添加或删除元素。 //2.由于容量变化而引起的内存重新分配。 //添加和移除 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,多出来的需构造; c.resize(num,elem);//将元素数量改为num,多出来的都为elem; c.clear();// 移除所有元素,清空容器。
vector
最新推荐文章于 2024-03-07 21:48:19 发布