我想合并两个列表,以便在合并队列中只存在一个公共元素条目.
std::listlist1 = { 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::listlist1 = { 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::listlist1 = { 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
.第一步将内容转移list2
到list1
.第二步对元素进行排序.最后一步抛出重复.分别对列表进行排序以及稍后合并几乎没有什么好处.
list1.sort(); list1.unique();
因为你的清单只是打电话 unique
list1.unique();
你的完整代码:
std::listlist1 = { 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";
我不是大代码的粉丝:
std::listlist1 = { 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
.第一步将内容转移list2
到list1
.第二步对元素进行排序.最后一步抛出重复.分别对列表进行排序以及稍后合并几乎没有什么好处.