如何从列表中对(自定义)字符串进行排序
How to sort (custom) strings from a list
我使用的是仅包含字符串的列表结构。我必须按长度和字母顺序对它们进行排序。
示例输入:
茶, 电车, 顶部, 三, 部队, 真
结果在:
茶, 三, 顶部, 电车, 真, 部队
我可以根据字符数对字符串进行排序,但我无法按字母顺序重新排序。结果字符串显示:茶,顶部,三。而且它们不是按字母顺序排序的。我正在使用插入排序和辅助列表。
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++中处理sort()
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 按字母顺序对字符串中的字母进行排序,而无需使用内置的 sort()
- 字符串上的合并排序上的 Seg 错误
- 将图形表示为unordered_map<字符串、向量>时拓扑排序错误<string>
- 如何在数组 c++ 中对字符串进行排序
- 提高从排序字符串中获取字母顺序的顺序复杂性
- 尝试使用C++中的模板进行BST排序,但在使用随机字符串进行测试时不起作用
- 如何根据第二列/第三列等对字符串向量进行排序?
- 如何对向量进行排序<浮点数,字符串>而不考虑字符串
- C ++中的字符串排序,也没有在第5个元素正确排序
- C++:使用 LSD 基数排序字符串排序崩溃
- C 样式的字符串排序与排序和 qsort
- 自定义字符串排序
- 编号和字符串排序Al
- 使用STL对子字符串排序
- 如何在c++中按字母顺序对标准输入字符串排序
- c++向量字符串排序不工作
- SQLite 的不区分大小写的 UTF-8 字符串排序规则 (C/C++)