gpt4 book ai didi

c++ - 如何从列表中排序(自定义)字符串

转载 作者:行者123 更新时间:2023-11-28 04:17:04 27 4
gpt4 key购买 nike

我正在使用仅包含字符串的列表结构。我必须按长度 && 按字母顺序对它们进行排序。

示例输入:

tea, tram, top, ter, troop, true

结果:

tea, ter, top, tram, true, troop

我可以根据字符数对字符串进行排序,但我对如何按字母顺序重新排序感到困惑。结果字符串显示:tea、top、ter.. 并且它们没有按字母顺序排列。我正在使用插入排序和辅助列表。

List_pointer<string> odd1(odd);
auto p1 = odd1.next(odd1.begin());
auto p2 = p1;
if (!odd1.empty())
{
while (!odd1.end(p1))
{
p2 = odd1.previous(p1);
while (p1 != odd1.begin() && ((odd1.read(p2).size()) > (odd1.read(p1).size())))
{
{
auto temp = odd1.read(p1);
odd1.write(odd1.read(p2),p1);
odd1.write(temp,p2);
}
p1 = odd1.previous(p1);
p2 = odd1.previous(p1);
}
p1 = odd1.next(p1);
}
}
cout << odd1 << endl;

我知道错误在这里:while (p1 != odd1.begin() && ((odd1.read(p2).size()) > (odd1.read(p1).size() ))) 但我卡住了。

最佳答案

要使用的比较函数类似于

bool compare_size_then_alpha(const std::string& lhs, const std::string& rhs)
{
if (lhs.size() != rhs.size()) {
return lhs.size() < rhs.size();
}
return lhs < rhs; // lexical order
}

关于c++ - 如何从列表中排序(自定义)字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56355774/

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