用C++ 对于给定的正整数序列,按照个位数从小到大排序,个位数相同的按照本身大小从小到大排序。
时间: 2024-09-20 09:18:25 浏览: 133
在C++中,你可以通过自定义比较函数来实现这个需求。这里我们可以创建一个名为`sort_by_last_digit_and_value`的函数,结合`std::sort`算法来对序列进行排序。首先,你需要定义一个结构体(struct)来存储每个数字及其对应的最后一位数。然后,你可以在比较函数里,先按个位数比较,如果个位数相同再按数值大小排序。
```cpp
#include <vector>
#include <algorithm>
// 结构体,包含整数和它的个位数
struct DigitPair {
int number;
int lastDigit;
// 构造函数
DigitPair(int num) : number(num), lastDigit(num % 10) {}
};
// 自定义比较函数
bool compare(DigitPair a, DigitPair b) {
if (a.lastDigit == b.lastDigit) {
return a.number < b.number; // 如果个位数相同,按原值升序排列
}
return a.lastDigit < b.lastDigit; // 先按个位数升序排列
}
// 主函数示例
int main() {
std::vector<int> numbers = {45, 12, 67, 89, 11, 33};
std::sort(numbers.begin(), numbers.end(), compare); // 使用自定义比较函数
for (const auto& num : numbers) {
std::cout << num << " ";
}
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)