gpt4 book ai didi

c++ - Vector 算法中的字符串排序不起作用

转载 作者:行者123 更新时间:2023-11-30 04:21:05 30 4
gpt4 key购买 nike

我有一个结构项 vector ,里面有一个字符串。我正在尝试通过按字母顺序在项目中包含字符串来对项目 vector 进行排序...到目前为止我有:

vector<Item> sorter;

std::sort(sorter.begin(), sorter.end(), SortHelp);

//predcate function
bool SortHelp(Item const& one, Item const& two)
{
return one.type < two.type;
}

*type 是我用来排序的字符串

如何更改谓词函数以按字母顺序对字符串进行排序?

最佳答案

下面的函数将在没有外部库的情况下对两个 std::string 进行不区分大小写的比较(尽管它是 C++11)。

bool caseinsensitivecompare(string s1, string s2) {
locale loc;
std::transform(s1.begin(),s1.end(),s1.begin(),
[loc](char c){return std::toupper<char>(c,loc);});
std::transform(s2.begin(),s2.end(),s2.begin(),
[loc](char c){return std::toupper<char>(c,loc);});
return (s1 < s2);
}

关于c++ - Vector 算法中的字符串排序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14793902/

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