C++中,两个vector合并,相同的元素去重,请详细举例并注释
时间: 2024-11-09 13:17:19 浏览: 64
在C++中,合并两个`vector`并去除重复元素可以使用多种方法,例如使用`std::set`(集合),因为它自动处理去重,或者是自定义排序和插入的方式。这里我将演示如何使用`std::set`来完成这个任务。
```cpp
#include <iostream>
#include <vector>
#include <set>
// 定义一个函数,用于合并并去重两个vector
std::vector<int> mergeAndRemoveDuplicates(const std::vector<int>& v1, const std::vector<int>& v2) {
// 使用set自动去重,并保持元素的升序排列
std::set<int> uniqueSet;
// 将v1和v2的内容都添加到uniqueSet中
for (int i : v1) {
uniqueSet.insert(i);
}
for (int i : v2) {
uniqueSet.insert(i);
}
// 转换回vector,此时已经去重
std::vector<int> result(uniqueSet.begin(), uniqueSet.end());
return result;
}
int main() {
std::vector<int> vec1 = {1, 2, 3, 4};
std::vector<int> vec2 = {3, 4, 5, 6};
// 合并并去重
std::vector<int> mergedVector = mergeAndRemoveDuplicates(vec1, vec2);
// 输出结果
for (int i : mergedVector) {
std::cout << i << " ";
}
//
阅读全文