用户输入一串数字,如何排序
时间: 2024-09-28 16:10:50 浏览: 21
在C++中,对一串数字进行排序有许多种方法,这里介绍一种常见的使用`std::sort`算法的方法,它来自于`<algorithm>`库。这个算法适用于随机访问容器,如`std::vector`、`std::array`等。
```cpp
#include <iostream>
#include <algorithm> // 包含sort函数
// 定义一个用于比较的函数(如果数字类型支持)
struct CompareNumbers {
bool operator()(const int& a, const int& b) const {
return a < b;
}
};
int main() {
std::vector<int> numbers; // 创建一个包含数字的向量
// 输入数字
std::cout << "Enter some numbers (separated by space): ";
for (int num; std::cin >> num; numbers.push_back(num)) { // 将输入的每个数添加到向量中
if (std::cin.fail()) break; // 如果输入错误(非整数)则停止
}
// 排序数字
std::sort(numbers.begin(), numbers.end(), CompareNumbers()); // 使用CompareNumbers比较器进行升序排序
// 输出排序后的结果
std::cout << "Sorted numbers: ";
for (int num : numbers) {
std::cout << num << ' ';
}
std::cout << '\n';
return 0;
}
```
在这个例子中,我们定义了一个自定义比较器`CompareNumbers`,该比较器默认按照升序排列。如果你想降序排列,只需改变`operator()`函数中的条件即可。
阅读全文