当前位置:  开发笔记 > 编程语言 > 正文

合并两个列表c ++

如何解决《合并两个列表c++》经验,为你挑选了2个好方法。

我想合并两个列表,以便在合并队列中只存在一个公共元素条目.

std::list list1 = { 5,9,0,1,3,4 };
std::list 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

我希望输出看起来像:

list1:   0 1 3 4 5 9
list2:   2 4 6 7 8
merged:  0 1 2 3 4 5 6 7 8 9

Humam Helfaw.. 5

list1.sort();
list1.unique();

因为你的清单只是打电话 unique

list1.unique();

你的完整代码:

std::list list1 = { 5,9,0,1,3,4 };
std::list 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";


Dietmar Kühl.. 5

我不是大代码的粉丝:

std::list list1 = { 5,9,0,1,3,4 };
std::list list2 = { 8,7,2,6,4 }; 

list1.splice(list1.end(), list2);
list1.sort();
list1.unique();

list1现在包含原始list1和每个元素的一个副本list2.第一步将内容转移list2list1.第二步对元素进行排序.最后一步抛出重复.分别对列表进行排序以及稍后合并几乎没有什么好处.



1> Humam Helfaw..:
list1.sort();
list1.unique();

因为你的清单只是打电话 unique

list1.unique();

你的完整代码:

std::list list1 = { 5,9,0,1,3,4 };
std::list 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";



2> Dietmar Kühl..:

我不是大代码的粉丝:

std::list list1 = { 5,9,0,1,3,4 };
std::list list2 = { 8,7,2,6,4 }; 

list1.splice(list1.end(), list2);
list1.sort();
list1.unique();

list1现在包含原始list1和每个元素的一个副本list2.第一步将内容转移list2list1.第二步对元素进行排序.最后一步抛出重复.分别对列表进行排序以及稍后合并几乎没有什么好处.

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有