C++98 使用 map<string, int> 按照值排序输出键的向量 日期: 2027-01-14 标签: 常规 #include \n#include \n#include \n#include \n\n// 自定义比较函数,用于按照值进行升序排序\nstruct CompareByValue {\n bool operator()(const std::pair<std::string, int>& lhs, const std::pair<std::string, int>& rhs) const {\n return lhs.second < rhs.second;\n }\n};\n\nint main() {\n std::map<std::string, int> myMap;\n myMap["apple"] = 3;\n myMap["banana"] = 2;\n myMap["orange"] = 5;\n myMap["grape"] = 4;\n myMap["pineapple"] = 1;\n\n // 将map中的键值对存入向量pairs\n std::vector<std::pair<std::string, int> > pairs(myMap.begin(), myMap.end());\n\n // 使用自定义的比较函数对向量进行排序\n std::sort(pairs.begin(), pairs.end(), CompareByValue());\n\n // 输出排序后的键的向量\n std::cout << "Sorted keys in ascending order of values:" << std::endl;\n for (std::vector<std::pair<std::string, int> >::iterator it = pairs.begin(); it != pairs.end(); ++it) {\n std::cout << it->first << std::endl;\n }\n\n return 0;\n}\n\n// 输出结果:\n\nSorted keys in ascending order of values:\npineapple\nbanana\napple\ngrape\norange\n\n在这个例子中,我们首先创建了一个map<string, int>,并向其中插入了一些键值对。然后,我们将map中的键值对存入了一个向量pairs,并使用自定义的比较函数CompareByValue对向量进行排序。最后,我们遍历排序后的向量,输出了键的向量,即按照值进行升序排序后的键的顺序。 原文地址: https://www.cveoy.top/t/topic/m0e3 著作权归作者所有。请勿转载和采集! 免费AI点我,无需注册和登录