gpt4 book ai didi

c++ - 以元组为键的自定义排序有序映射

转载 作者:太空宇宙 更新时间:2023-11-04 16:02:50 25 4
gpt4 key购买 nike

假设我按如下方式定义我的元组:

typedef tuple<string, string> bigram;

我的 map 将元组映射到整数:

map<bigram, int> mymap;

如何自定义比较器,以便 mymap 根据 bigram 中第一个字符串的字母顺序排序?

我在想

map<bigram, int, greater<bigrams[0]>> mymap;

最佳答案

首先 - 按字母顺序表示您想要 less而不是 greater .二、默认排序顺序为tuple<string, string>应该只为你工作。注意:人们给出的各种建议可能并不符合您的要求。他们都会比较{"foo", "bar"}{"foo", "baz"}当您可能希望将它们视为不同的对象时,它们是平等的。如果你想要反向排序,你应该能够做到 map<bigram, int, std::greater<bigram>>否则坚持简单 map<bigram, int> .

引用元组免费提供的比较运算符的定义:http://en.cppreference.com/w/cpp/utility/tuple/operator_cmp

关于c++ - 以元组为键的自定义排序有序映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40458790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com