gpt4 book ai didi

c++如何确定字母表中一个单词是否在另一个单词之前

转载 作者:搜寻专家 更新时间:2023-10-31 01:13:34 24 4
gpt4 key购买 nike

我正在使用 sort() C++ 中的函数对我自己定义的“游戏”类型的对象 vector 进行排序。为此,我手动编写了一个函数来代替 operator<。 , 并将作为第三个参数传递给 sort()功能。首先,我根据分数进行比较。然后,如果分数相同,我会根据团队名称进行比较。

我需要的是一个函数alphabetical(string s1, string s2) ,如果 s1 将返回真会在 s2 之前出现在字典里。例如:

alphabetical("aardvark", "apple"); //true
alphabetical("balloon", "zebra"); //true
alphabetical("zebra", "apple"); //false

如果字符串相同,我还希望它返回 false。图书馆里有我可以使用的东西吗?或者,我将如何编写函数?我希望我的意思是清楚的。

最佳答案

std::string实现字典序小于比较运算符本身,这意味着 stringA < stringB通常应该做你想做的。如果你创建一个 std::list<std::string> words , 按字母顺序排序将像 words.sort(); 一样简单

您的定制Game类可以将其小于比较运算符简单地实现为:

return (score < rhs.score) || (score == rhs.score && team < rhs.team)

值得注意的是,字典排序并不总是符合人类的期望。 Jeff Atwood 在 this post 中讨论了所谓的“自然排序顺序”与字典排序顺序。 .他的帖子还提供了资源,如果您需要这种排序,您可以从中找到算法。

关于c++如何确定字母表中一个单词是否在另一个单词之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12361447/

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