对C++中3种顺序容器的特性的认识

一:向量

s.capacity();

s.reserve(n);

只要是元素的位置改变了,迭代器、指针和引用就失效了,也就是所指的位置不确定。

二:双端队列

在队头和队尾插入元素,迭代器、指针和引用不失效。

在队头和队尾删除元素,删除元素的迭代器、指针和引用失效,其他的不失效。

在队中插入和删除元素,所有的迭代器、指针和引用都失效。

三:列表

也就是数据结构中的双向链表。

插入元素,迭代器、指针和引用不失效。

删除元素,删除的元素的迭代器、指针和引用失效,其他的不失效。

注意:特殊的操作,splice(接合)。

s1.splice(p,s2);

s1.splice(p,s2,q1);

s1.splice(p,s2,q1,q2);

接合影响的元素的迭代器、指针和引用失效,其他的不失效。

列表还有其他特殊的操作。

以上就是我对于3种顺序容器的特性的认识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++11常见STL容器特性及应用场所如下: 1. vector 特性:动态数组,支持快速随机访问,可在尾部插入或删除元素,内存连续。 应用场所:适用于需要快速随机访问的情境,比如数组替代品,动态数组等。 2. deque 特性:双向队列,支持快速随机访问,可在两端插入或删除元素,内存不一定连续。 应用场所:适用于需要在两端进行插入或删除操作的情境,比如队列,双端队列等。 3. list 特性:双向链表,支持快速插入和删除元素,不支持随机访问,内存不连续。 应用场所:适用于需要快速插入和删除元素,但不需要随机访问的情境,比如链表,哈希表,LRU缓存等。 4. forward_list 特性:单向链表,支持快速插入和删除元素,不支持随机访问,内存不连续。 应用场所:适用于需要快速插入和删除元素,但不需要随机访问的情境,比如链表,哈希表,LRU缓存等。 5. set 特性:基于红黑树的有序集合容器,支持快速查找,插入和删除操作。 应用场所:适用于需要有序存储元素,且需要快速查找、插入和删除元素的情境,比如字典,排序等。 6. map 特性:基于红黑树的有序映射容器,支持快速查找,插入和删除操作。 应用场所:适用于需要有序存储键值对,且需要快速查找、插入和删除元素的情境,比如字典,映射等。 7. unordered_set 特性:基于哈希表的无序集合容器,支持快速查找,插入和删除操作。 应用场所:适用于需要无序存储元素,且需要快速查找、插入和删除元素的情境,比如哈希表,去重等。 8. unordered_map 特性:基于哈希表的无序映射容器,支持快速查找,插入和删除操作。 应用场所:适用于需要无序存储键值对,且需要快速查找、插入和删除元素的情境,比如哈希表,去重等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值