C++ list怎么去重
时间: 2024-05-18 21:08:17 浏览: 18
在C++中,可以使用STL库中的list容器来实现去重操作。list是一个双向链表,它提供了一些方便的成员函数来操作链表元素。
要对list进行去重,可以使用unique()函数结合erase()函数来实现。unique()函数会将相邻的重复元素放在一起,并返回去重后的尾部迭代器,然后可以使用erase()函数将重复的元素删除。
下面是一个示例代码:
```cpp
#include <iostream>
#include <list>
#include <algorithm>
int main() {
std::list<int> myList = {1, 2, 2, 3, 4, 4, 5};
// 对list进行去重
myList.unique();
// 输出去重后的list
for (const auto& num : myList) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
运行以上代码,输出结果为:1 2 3 4 5,即去除了重复的元素。
相关问题
C++,list去重
C++中可以使用STL中的set或者unordered_set来实现list去重。其中set是基于红黑树实现的,可以自动排序,而unordered_set是基于哈希表实现的,查找速度更快。具体实现方法如下:
1.使用set实现list去重:
```
#include <iostream>
#include <list>
#include <set>
using namespace std;
int main()
{
list<int> myList = {1, 2, 3, 2, 4, 5, 3};
set<int> mySet(myList.begin(), myList.end());
myList.assign(mySet.begin(), mySet.end());
for (auto i : myList)
{
cout << i << " ";
}
return 0;
}
```
2.使用unordered_set实现list去重:
```
#include <iostream>
#include <list>
#include <unordered_set>
using namespace std;
int main()
{
list<int> myList = {1, 2, 3, 2, 4, 5, 3};
unordered_set<int> mySet(myList.begin(), myList.end());
myList.assign(mySet.begin(), mySet.end());
for (auto i : myList)
{
cout << i << " ";
}
return 0;
}
```
java list去重
可以使用 HashSet 来实现去重,也可以使用 Java 8 中的 Stream API 来实现,示例代码如下:
1. 使用 HashSet 实现去重:
List<String> list = new ArrayList<>();
// 添加重复元素
list.add("a");
list.add("b");
list.add("c");
list.add("a");
list.add("d");
Set<String> set = new HashSet<>(list);
List<String> newList = new ArrayList<>(set);
System.out.println(newList);
输出结果为:[a, b, c, d]
2. 使用 Stream API 实现去重:
List<String> list = new ArrayList<>();
// 添加重复元素
list.add("a");
list.add("b");
list.add("c");
list.add("a");
list.add("d");
List<String> newList = list.stream().distinct().collect(Collectors.toList());
System.out.println(newList);
输出结果为:[a, b, c, d]
笑话时间:为什么C++程序员喜欢喝茶?因为茶是O(1)的。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)