unordered_map的排序
unordered_map 的排序
unordered_map
是C++的哈希表结构, unorded_map
并不能直接排序, 如果要排序,一般来说需要将unordered_map
转换为vector
再通过自定义排序函数使用sort
进行排序。
实例:
1 | bool cmp(pair<char, int>& a, pair<char,int>& b) { |
关于
sort
函数:默认函数有两种,第一个参数和第二个参数都是容器的起始地址和结束地址,第三个参数是排序函数,接受范围内的两个元素作为参数并返回可转换为布尔值的二元函数。返回的值表示作为第一个参数传递的元素是否被视为在其定义的特定严格弱排序中位于第二个参数之前。
template <class RandomAccessIterator> void sort (RandomAccessIterator first, RandomAccessIterator last);
template <class RandomAccessIterator, class Compare> void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
sort
对于不同类型的默认排序:对数组排序: 默认从小到大排序
对
pair
排序,默认对first从小到大排序,first相同是对second从小到大排序对结构体: 一般需要自定义函数