现在我有一个`
multimap<size_t, <string>> mymap`;
它存储由单词大小键入的单词。
我希望能够使用key = 5获取所有单词。然后我想用从最低到最高的键值对字符串进行排序。
我如何做到这一点并且是多图表最有效的方式? 我的意思是可以使用不同的容器,我可以用字符串值对它们进行排序,也可以按键值对它们进行分类?
基本上我有一个向量,其中第一个元素不能移动。但是矢量的其余部分应按字母顺序排列。我该怎么做?然后我想要再次排序后组织矢量,按字母顺序使用第一个单词仅在多图中组织它们。有什么想法吗?
答案 0 :(得分:1)
最有效的方法取决于您将如何使用此容器。
如果您希望在插入/删除字符串时保持字符串排序,那么最有效的方法是std::unordered_map<std::size_t, set<string> >
。
但是,如果可以收集所有数据然后对所有字符串进行排序,那么最有效的方法是使用std::unordered_map<std::size_t, vector<string> >
。