加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 哪个STL容器?

发布时间:2020-12-16 10:26:40 所属栏目:百科 来源:网络整理
导读:我需要一个容器(不一定是STL容器),它让我轻松地执行以下操作: 在任何位置插入和移除元素 按索引访问元素 以任何顺序迭代元素 我使用了std :: list,但它不会让我插入任何位置(确实如此,但为此我必须迭代所有元素然后插入我想要的位置,这很慢,作为列表可能很
我需要一个容器(不一定是STL容器),它让我轻松地执行以下操作:

>在任何位置插入和移除元素
>按索引访问元素
>以任何顺序迭代元素

我使用了std :: list,但它不会让我插入任何位置(确实如此,但为此我必须迭代所有元素然后插入我想要的位置,这很慢,作为列表可能很大).你能推荐任何有效的解决方案吗?

解决方法

我并不完全清楚你的意思是“以任何顺序迭代元素” – 这是否意味着你不关心顺序,只要你可以迭代,或者你想要能够任意迭代定义标准?这些是非常不同的条件!

假设您的意思是迭代顺序并不重要,可以想到几个可能的容器:

std :: map [红黑树,通常]

>插入,删除和访问是O(log(n))
>迭代按索引排序

hash_map或std :: tr1 :: unordered_map [哈希表]

>插入,移除和访问都是(大约)O(1)>迭代是’随机的’

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读