两个vector合并去重
时间: 2023-05-17 17:04:59 浏览: 250
可以使用set来去重,然后将两个vector中的元素插入到set中,最后将set中的元素插入到一个新的vector中即可。以下是示例代码:
```c++
#include <iostream>
#include <vector>
#include <set>
using namespace std;
vector<int> mergeAndDistinct(vector<int>& v1, vector<int>& v2) {
set<int> s;
for (auto& i : v1) {
s.insert(i);
}
for (auto& i : v2) {
s.insert(i);
}
vector<int> result;
for (auto& i : s) {
result.push_back(i);
}
return result;
}
int main() {
vector<int> v1 = {1, 2, 3, 4};
vector<int> v2 = {3, 4, 5, 6};
vector<int> result = mergeAndDistinct(v1, v2);
for (auto& i : result) {
cout << i << " ";
}
cout << endl;
return 0;
}
```
输出结果为:1 2 3 4 5 6
相关问题
c++两个数组去重合并
在C++中,如果你想从两个数组中去除重复元素并合并它们,可以采用几种方法。这里介绍一种常见的做法,即使用STL容器如`std::set`或`std::unordered_set`来存储数组元素,因为集合会自动处理重复值,并且保持插入顺序相对稳定。
假设我们有两个整数数组arr1和arr2:
```cpp
#include <iostream>
#include <vector>
#include <set>
std::vector<int> mergeAndRemoveDuplicates(std::vector<int>& arr1, std::vector<int>& arr2) {
std::set<int> uniqueElements;
// 将第一个数组添加到集合中
for (int i : arr1) {
uniqueElements.insert(i);
}
// 添加第二个数组,如果元素不在集合中,则添加
for (int j : arr2) {
if (!uniqueElements.count(j)) {
uniqueElements.insert(j);
}
}
// 转换集合回向量,得到去重后的结果
std::vector<int> result(uniqueElements.begin(), uniqueElements.end());
return result;
}
int main() {
std::vector<int> arr1 = {1, 2, 3, 4};
std::vector<int> arr2 = {3, 4, 5, 6};
std::vector<int> merged = mergeAndRemoveDuplicates(arr1, arr2);
for (int value : merged) {
std::cout << value << " ";
}
return 0;
}
```
当你运行这个程序,它会打印出去重后的合并数组:`1 2 3 4 5 6`。
两个数组去重合并排序C++
对于两个数组去重合并排序的问题,可以按照以下步骤来实现:
1. 首先将两个数组合并成一个数组
2. 对这个数组进行去重操作,保留每个元素的第一次出现的位置
3. 对去重后的数组进行排序
以下是C++代码示例:
```
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
vector<int> merge_sort(vector<int>& nums1, vector<int>& nums2) {
vector<int> merged(nums1.size() + nums2.size());
merge(nums1.begin(), nums1.end(), nums2.begin(), nums2.end(), merged.begin());
return merged;
}
vector<int> unique_sort(vector<int>& nums) {
sort(nums.begin(), nums.end());
nums.erase(unique(nums.begin(), nums.end()), nums.end());
return nums;
}
int main() {
vector<int> nums1 = {1, 3, 5, 7, 9};
vector<int> nums2 = {2, 4, 6, 8, 10};
vector<int> merged = merge_sort(nums1, nums2);
vector<int> result = unique_sort(merged);
// 输出去重后的排序结果
for (auto num : result) {
cout << num << " ";
}
cout << endl;
return 0;
}
```
阅读全文