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)>迭代是’随机的’ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |