酷代码 AI
菜单
服务商

C++ 实现非负整数排序去重

以下是实现该功能的 C++ 代码: ```cpp #include <iostream> #include <algorithm> #include <vector> int main() { int n; std::cin >> n; std::vector<int> numbers(n); // 读取 n 个非负整数 for (int i = 0; i < n; ++i) { std::cin >> numbers[i]; } // 对向量进行排序 std::sort(numbers.begin(), numbers.end()); // 去重操作 auto last = std::unique(numbers.begin(), numbers.end()); numbers.erase(last, numbers.end()); // 输出去重且排序后的结果 for (size_t i = 0; i < numbers.size(); ++i) { if (i > 0) { std::cout << " "; } std::cout << numbers[i]; } std::cout << std::endl; return 0; } ``` ### 代码解释: 1. **输入处理**:首先读取整数 `n`,表示序列的个数。然后使用 `std::vector` 存储这 `n` 个非负整数。 2. **排序**:使用 `std::sort` 函数对 `std::vector` 中的元素进行排序。 3. **去重**:使用 `std::unique` 函数去除相邻的重复元素,它返回一个指向去重后序列末尾的迭代器。然后使用 `erase` 函数将多余的元素从向量中移除。 4. **输出**:遍历去重且排序后的向量,输出每个元素,元素之间用空格分隔。 ######[AI问答 | 398点数解答 | 2026-04-11 17:08:54]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]