如何将字符串的多映射作为值进行排序

How to sort a multimap of strings as the value

本文关键字:排序 映射 字符串      更新时间:2023-10-16

现在我有一个`

 multimap<size_t, <string>> mymap`; 

它存储按单词大小键入的单词。

我希望能够掌握所有关键字为5的单词。然后我想用那个键值从低到高对字符串进行排序。

我该如何做到这一点?多重映射是最有效的方法吗?我的意思是,是否可以使用不同的容器,在那里我可以按字符串值对它们进行排序,也可以按键值对它们进行分类?

基本上,我有一个向量,其中第一个元素不能移动。但向量的其余部分应该按字母顺序组织。我该怎么做?然后,我想再次对向量进行排序,按字母顺序使用第一个单词,只在多映射中组织它们。有什么想法吗?

最有效的方法取决于如何使用这个容器。若要在插入/删除字符串时保持字符串的排序,那个么最有效的方法是std::unordered_map<std::size_t, set<string> >

但是,如果可以收集所有数据,然后对所有字符串进行排序,那么最有效的方法就是使用std::unordered_map<std::size_t, vector<string> >