c – 哪个STL容器?

c – 哪个STL容器?,第1张

概述我需要一个容器(不一定是STL容器),它让我轻松地执行以下 *** 作: >在任何位置插入和移除元素 >按索引访问元素 >以任何顺序迭代元素 我使用了std :: list,但它不会让我插入任何位置(确实如此,但为此我必须迭代所有元素然后插入我想要的位置,这很慢,作为列表可能很大).你能推荐任何有效的解决方案吗? 我并不完全清楚你的意思是“以任何顺序迭代元素” – 这是否意味着你不关心顺序,只要你可以迭代 我需要一个容器(不一定是STL容器),它让我轻松地执行以下 *** 作:

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

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

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

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

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

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

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

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

总结

以上是内存溢出为你收集整理的c – 哪个STL容器?全部内容,希望文章能够帮你解决c – 哪个STL容器?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1220197.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存