合并两个列表C ++ [英] Merge two lists c++
本文介绍了合并两个列表C ++的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想合并两个列表,以便合并队列中仅存在一个公共元素条目.
I want to merge two lists such that only one entry of common element is present in the merged queue.
std::list<int> list1 = { 5,9,0,1,3,4 };
std::list<int> list2 = { 8,7,2,6,4 };
list1.sort();
list2.sort();
std::cout << "list1: " << list1 << "\n";
std::cout << "list2: " << list2 << "\n";
list1.merge(list2);
std::cout << "merged: " << list1 << "\n";
输出如下:
list1: 0 1 3 4 5 9
list2: 2 4 6 7 8
merged: 0 1 2 3 4 4 5 6 7 8 9
我希望输出看起来像这样:
I want the output to look like:
list1: 0 1 3 4 5 9
list2: 2 4 6 7 8
merged: 0 1 2 3 4 5 6 7 8 9
推荐答案
list1.sort();
list1.unique();
由于您的列表已排序,因此只需调用 unique
since your list is sorted just call unique
list1.unique();
您的完整代码:
std::list<int> list1 = { 5,9,0,1,3,4 };
std::list<int> list2 = { 8,7,2,6,4 };
list1.sort();
list2.sort();
std::cout << "list1: " << list1 << "\n";
std::cout << "list2: " << list2 << "\n";
list1.merge(list2);
list1.unique();
std::cout << "merged: " << list1 << "\n";
这篇关于合并两个列表C ++的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文