list<int> c1, c2;
c1.push_back(3);
c1.push_back(6);
c1.push_back(9);
c2.push_back(2);
c2.push_back(4);
c2.push_back(5);
用c2.merge(c1) 就变成了2,3,4,5,6,9
我需要的是2,4,5,3,6,9 不排序
5 个解决方案
#1
c2.splice(c2.end(), c1);
#2
merge都是合并两个有序的区间。也就是merge sort所用手法。
#3
楼上正解~!`
#4
merge函数在使用时就已经排序了,如果不排序的话,你得在你的程序排序部分稍加修改再调用那个函数才可以。
#5
Removes the elements from the argument list, inserts them into the target list,
**and orders the new, combined set of elements in ascending order or in some other specified order.***
这是MSDN里面对list::merge的描述。
如果楼主不想排序的话要怎样排列list中的元素呢?把一个接在另一个后面?那样可以使用list::splice.
功能描述
Removes elements from the argument list and inserts them into the target list.
**and orders the new, combined set of elements in ascending order or in some other specified order.***
这是MSDN里面对list::merge的描述。
如果楼主不想排序的话要怎样排列list中的元素呢?把一个接在另一个后面?那样可以使用list::splice.
功能描述
Removes elements from the argument list and inserts them into the target list.
#1
c2.splice(c2.end(), c1);
#2
merge都是合并两个有序的区间。也就是merge sort所用手法。
#3
楼上正解~!`
#4
merge函数在使用时就已经排序了,如果不排序的话,你得在你的程序排序部分稍加修改再调用那个函数才可以。
#5
Removes the elements from the argument list, inserts them into the target list,
**and orders the new, combined set of elements in ascending order or in some other specified order.***
这是MSDN里面对list::merge的描述。
如果楼主不想排序的话要怎样排列list中的元素呢?把一个接在另一个后面?那样可以使用list::splice.
功能描述
Removes elements from the argument list and inserts them into the target list.
**and orders the new, combined set of elements in ascending order or in some other specified order.***
这是MSDN里面对list::merge的描述。
如果楼主不想排序的话要怎样排列list中的元素呢?把一个接在另一个后面?那样可以使用list::splice.
功能描述
Removes elements from the argument list and inserts them into the target list.