您的位置:首页 > 其它

vector

2015-12-02 10:35 190 查看
#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;
c1c2;
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();// 移除所有元素,清空容器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: