合并两个线性表,删除重复的元素;
时间: 2023-09-10 07:10:51 浏览: 64
好的,让我来解答你的问题。
合并两个线性表并删除重复的元素,可以采用以下方法:
1. 将两个线性表中的元素合并成一个新的线性表。
2. 遍历新的线性表,将重复的元素删除。
3. 返回删除重复元素后的新线性表。
具体实现可以参考如下代码:
```
#include <iostream>
#include <vector>
using namespace std;
vector<int> merge_and_remove_duplicates(vector<int> list1, vector<int> list2) {
// 将两个线性表中的元素合并成一个新的线性表。
vector<int> merged_list(list1.size() + list2.size());
merge(list1.begin(), list1.end(), list2.begin(), list2.end(), merged_list.begin());
// 遍历新的线性表,将重复的元素删除。
auto last_element = unique(merged_list.begin(), merged_list.end());
// 返回删除重复元素后的新线性表。
return vector<int>(merged_list.begin(), last_element);
}
int main() {
vector<int> list1{1, 2, 3, 4};
vector<int> list2{3, 4, 5, 6};
vector<int> merged_list = merge_and_remove_duplicates(list1, list2);
for (auto element : merged_list) {
cout << element << " ";
}
// Output: 1 2 3 4 5 6
return 0;
}
```
该代码使用了 C++ STL 中的 `merge` 和 `unique` 函数。`merge` 函数可以将两个已排序的线性表合并成一个,`unique` 函数可以将重复的元素移到末尾并返回一个迭代器,用于删除这些元素。最后,我们还需要使用 vector 的构造函数将新线性表存储的部分构造成一个新的 vector 对象。