STL 基本容器学习笔记

容器的共通操作

初始化

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

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>()));

与大小相关的操作函数

  1. size() 返回当前容器的元素数量。
  2. empty() 这是size()==0 表达的快捷形式,效率更高。
  3. 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();              //移除所有元素,清空容器。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值