STL中vector和list的一些常用方法

1. vector

首先vector容器与array非常相似,主要区别就在于空间的运用灵活性。array一旦配置了空间就不可以改变,属于静态空间。而vector是动态空间,它的空间分配依赖于元素个数,当空间不足时,将会把空间整个扩大二倍。

实际上vector结构有三个迭代器(都是普通指针)Random Access Iterators的动态数组

分别为iterator start、iterator finish、iterator end_of_storage

其中finish-start定义了容器中元素的个数,它等同于size()

而end_of_storage-start定义了容器所能容纳的最大元素个数,它等同于capacity()

常用的一些操作如下:

begin(), end(), size(), capacity(), empty(), operator[](int index),at(int index),
front(), back(), push_back(), pop_back(),insert(iterator pos,n,elem),
erase(iterator iter),
erase(iterator begin_iter,iterator end_ietr),
clear();
vector<int>obj(2,9); //9,9
vector<int>::iterator iter;
iter=find(obj.begin(),obj.end(),9);
obj.erase(iter);
obj.insert(iter,3,7);
obj.clear();

2. list

STL中的list描述的是双向链表,相对于vector来说,对于插入、删除元素有较高的效率。它的迭代器是双向迭代器Bidireactional iterators,不支持随机存取。实际上STL中的list不仅是双向链表,而且还是一个环状双向链表。常用的一些成员函数如下所示

begin(), end(), empty(), size(),
front(), back(), push_back(),push_front(),pop_front(),pop_back().
insert(iterator pos,int insert_elem),
erase(iterator pos),clear(),remove(int elem),
unique(),splice(iterator pos,list &ls2)//splice后ls2为空
merge(list &ls2),reverse(),
sort()//这里注意对于sort只能用list自带的成员函数,
//因为对于算法sort()必须支持随机存取的容器才能使用

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值