有没有其他更简洁的方法来实现这个功能?
时间: 2024-10-02 22:03:28 浏览: 25
对于简单的字符ASCII值比较,确实存在一种更简洁的方式。你可以使用C++标准库中的`sort`函数,结合`std::pair`来一起完成。以下是一个简化版的例子:
```cpp
#include <iostream>
#include <algorithm> // 包含sort函数
using namespace std;
bool compare_char(const pair<char, int>& a, const pair<char, int>& b) {
return a.second < b.second; // 按ASCII值比较
}
int main() {
char ch1, ch2, ch3;
cin >> ch1 >> ch2 >> ch3;
pair<char, int> arr[] = {make_pair(ch1, static_cast<int>(ch1)),
make_pair(ch2, static_cast<int>(ch2)),
make_pair(ch3, static_cast<int>(ch3))};
sort(arr, arr + 3, compare_char); // 使用自定义比较函数
for (const auto& p : arr) {
cout << p.first;
}
return 0;
}
```
这个版本直接创建了一个包含字符及其ASCII值的数组,并使用`sort`函数进行排序,同时传递自定义的`compare_char`函数作为比较规则。
阅读全文