1:STL容器

  C++标准程序库提供了如下容器:序列容器、关联容器、容器配接器和其它STL容器。序列容器包括vector、deque和list;关联容器包括map、multimap、set和multiset;容器配接器包括stack、queue和priority queue,其它容器包括string、array和hash table。本节主要介绍容器的共通能力和操作

1:容器的共通能力

  STL容器三个最核心的能力:
1. 容器提供“value”而非“reference”。容器内部对元素进行拷贝操作,如果多容器共享元素则需使用指针。
2. 容器内元素有序。可用迭代器进行遍历。
3. 操作非绝对安全。STL不检查和抛出错误,违反需求导致未定义。

2:容器的共通操作

2.1 初始化

  每个容器提供默认构造函数、copy构造函数和析构函数。

Container c; //默认构造函数初始化
Container c(c1); //用另一个容器进行拷贝初始化
Container c(c1.begin(),c1.end()); //用另一个容器的部分元素拷贝初始化
Container c=c1; //赋值,尽量少用,下面介绍
Container c={1,2,3,4}; //列表初始化
Container c=((istream_iterator<type>cin),
          (istream_iterator<type>cin()));//用标准输入进行初始化

2.2 大小有关

size(); //返回容器大小
empty();//返回容器是否为空
max_size(); //容器所能容纳的最大元素数量,因版本而异

2.3 比较

  包含常见的比较操作符:==、!=、<、<=、>、>=。定义依据以下规则:
1. 两端属于同一类别。
2. 字典式比较

2.4 赋值和交换

  对容器赋值时,将源容器所有元素拷贝到目标容器中,目标容器所有元素被移除,复杂度为线性。swap()函数只交换容器内部数据(只是替换内部指针),复杂度为常数。拷贝后源容器不再使用时,采用swap()函数效率更高。swap()函数有两种操作:c1.swap(c2),swap(c1,c2);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值