>在任何位置插入和移除元素
>按索引访问元素
>以任何顺序迭代元素
我使用了std :: List,但它不会让我插入任何位置(确实如此,但为此我必须迭代所有元素然后插入我想要的位置,这很慢,作为列表可能很大).你能推荐任何有效的解决方案吗?
解决方法 我并不完全清楚你的意思是“以任何顺序迭代元素” – 这是否意味着你不关心顺序,只要你可以迭代,或者你想要能够任意迭代定义标准?这些是非常不同的条件!假设您的意思是迭代顺序并不重要,可以想到几个可能的容器:
std :: map [红黑树,通常]
>插入,删除和访问是O(log(n))
>迭代按索引排序
hash_map或std :: tr1 :: unordered_map [哈希表]
>插入,移除和访问都是(大约)O(1)>迭代是’随机的’
总结以上是内存溢出为你收集整理的c – 哪个STL容器?全部内容,希望文章能够帮你解决c – 哪个STL容器?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)