如果你想对一个含有若干个
map
元素的
list
进行排序,可以使用
std::sort
函数。你需要自己提供一个比较函数来告诉
sort
如何比较两个元素。例如,如果你想按照每个
map
的"age"字段进行降序排序,你可以使用如下代码:
#include <algorithm>
#include <functional>
#include <map>
#include <vector>
// 定义比较函数,按照 map 的 "age" 字段进行比较
bool compare(const std::map<std::string, int> &a,
const std::map<std::string, int> &b) {
return a["age"] > b["age"];
int main() {
// 定义一个含有若干个 map 的 list
std::vector<std::map<std::string, int>> maps = {
{{"name", "Alice"}, {"age", 20}},
{{"name", "Bob"}, {"age", 30}},
{{"name", "Charlie"}, {"age", 25}}
// 使用 std::sort 对 list 进行排序
std::sort(maps.begin(), maps.end(), compare);
// 输出排序后的 list
for (const auto &m : maps) {
std::cout << m["name"] << ": " << m["age"] << std::endl;
return 0;
输出结果如下:
Bob: 30
Charlie: 25
Alice: 20
注意,如果你希望对一个含有若干个map
元素的list
进行升序排序,你可以在比较函数中将比较结果取反:
bool compare(const std::map<std::string, int> &a,
const std::map<std::string, int> &b) {
return a["age"] < b["age"];
希望这些信息对你有帮助。