消除重复的元素

本文深入探讨了C++中使用标准模板库(STL)进行数组排序的方法,重点介绍了如何利用sort函数结合less比较器实现从小到大的升序排列,为读者提供了实用的代码示例。

在这里插入图片描述
排序代码由小到大 sort(nums.begin(),nums.end(),std::less());

不同的编程语言有不同的删除重复元素的方法,以下是几种常见语言的示例: ### Python 在 Python 中可以通过 7 种方法去除列表中的重复元素,以下为部分示例: - **使用集合(set)**:集合是无序且元素唯一的数据结构,将列表转换为集合再转换回列表即可去除重复元素。 ```python my_list = [1, 2, 2, 3, 4, 4, 5] unique_list = list(set(my_list)) print(unique_list) ``` - **使用循环和条件判断**:通过遍历列表,将不重复元素添加到新列表中。 ```python my_list = [1, 2, 2, 3, 4, 4, 5] unique_list = [] for item in my_list: if item not in unique_list: unique_list.append(item) print(unique_list) ``` - **使用 collections.Counter**:Counter 是一个计数器,可统计元素出现的次数,再根据统计结果构建无重复元素的列表。 ```python from collections import Counter my_list = [1, 2, 2, 3, 4, 4, 5] unique_list = list(Counter(my_list).keys()) print(unique_list) ``` ### C++ 在 C++ 中,对于 `std::vector` 有两种常见去除重复元素的方法: - **排序后使用 `std::unique` 和 `erase`**:先对 `std::vector` 进行排序,然后使用 `std::unique` 函数将相邻的重复元素移到末尾,最后使用 `erase` 函数删除这些重复元素。 ```cpp #include <iostream> #include <vector> #include <algorithm> int main() { std::vector<int> vec = {1, 2, 2, 3, 4, 4, 5}; std::sort(vec.begin(), vec.end()); auto last = std::unique(vec.begin(), vec.end()); vec.erase(last, vec.end()); for (int n : vec) { std::cout << n << " "; } std::cout << std::endl; return 0; } ``` - **使用 `std::set`**:`std::set` 是一个元素唯一的容器,将 `std::vector` 的元素插入 `std::set` 中,再将 `std::set` 的元素复制回 `std::vector`。 ### JavaScript 在 JavaScript 中,可以通过双层循环比较元素并删除重复元素: ```javascript function unique(arr) { for (var i = 0; i < arr.length; i++) { for (var j = i + 1; j < arr.length; j++) { if (arr[i] === arr[j]) { arr.splice(j, 1); j--; } } } return arr; } console.log(unique([1, 1, 1, 2, 2, 3, 3])); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值