合并两个列表C ++ [英] Merge two lists c++

查看:62
本文介绍了合并两个列表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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆