【发布时间】:2015-03-20 08:58:27
【问题描述】:
我在一个容器中有一堆字符串。这些字符串在容器中必须是唯一的,但我想保留顺序或字符串(添加它们的顺序)。
有没有比使用向量并在每次添加操作之前测试元素是否已经在向量中更优雅的解决方案,例如通过使用 std::find from ?由于唯一性,我很想使用一个集合,但是我怎样才能保留将字符串添加到集合中的顺序呢?
【问题讨论】:
-
很可能
vector-解决方案具有最佳运行时性能,因为set的树结构引入了额外的间接性。所以这是要考虑的事情:) -
unordered_set 没有任何顺序,它们无效,因为他想保留字符串的顺序。此外,如果您必须对其进行迭代,则不建议使用它。
-
我的意思是如果你可以添加到 unordered_set 那么你可以添加到 vector.unordered_set 帮助你使唯一,vector 帮助你保持顺序。但是你需要花费更多的内存。只是一个想法给你.. .
标签: c++ stl containers