您的位置:首页 > 其它

STL 基本容器学习笔记

2015-06-21 23:47 295 查看

容器的共通操作

初始化

·以某个数组元素为初值,完成初始化

int src[] = {1,2,3,4,5,6,7};
vector<int> c(src,sizeof(src)/sizeof(src[0]));


·以另一个容器的元素为初值,完成初始化

vector<char> a_vector;
//...
vector<char> b(a_vector);


·以标准输入装置完成初始化

vector<int> a((std::istream_iterator<int>(std::cin)),
(std::istream_iterator<int>()));


与大小相关的操作函数

size() 返回当前容器的元素数量。

empty() 这是size()==0 表达的快捷形式,效率更高。

max_size() 返回容器最大容纳元素数量。一般返回索引型别的最大值。

vector

笔记:

vector<Elem> c(n);      //利用元素的初始化函数生成一个大小为n的容器
vector<Elem> c(n,elem); //利用elem的值初始化
vector<Elem> c(beg,end);//利用 [beg,end) 区间初始化

c.capacity();           //返回重新分配空间之前最大容量

c.assign(n,elem);       //复制n个elem,赋值给c
c.assign(beg,end);      //复制[beg,end) 区间赋值给c

c.swap(b);              //交换c,b
swap(c,b);              //同上


元素的存取:

c.at(idx);              //返回索引为idx的元素。检查越界。
//若越界,抛出out_of_range
c[idx];                 //不检查越界
c.front();              //返回第一个元素,不检查。
c.back();               //返回最后一个元素,不检查。


安插、移除元素:

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);     //新元素以elem补充。

c.clear();              //移除所有元素,清空容器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: