![]() |
1
25
填充另一个容器是不可避免的。但您不必移动或复制任何自己的数据。你可以用
函数将要排序的节点传输到排序器列表中(第一个迭代器参数是插入节点之前的位置,在本例中是列表的结尾)。 排序器列表被排序(显然),然后排序的内容被传输回源列表,并精确地传输到它最初填充的原始子范围中。 正如@t.c.所评论的那样,下一步就是概括它。它可以制作成类似于此模板的模板:
这里也把比较器作为一个参数,并且
Here is a live example 以一种幼稚而有点愚蠢的范围保护实现,用于说明目的。 |
![]() |
2
0
我想你是指STD::名单:排序。Visual Studio 2015的实现可以做到这一点,而无需填充另一个容器。它是一种自上而下的合并排序,比以前的自下而上的合并排序效率低,但它避免了以前版本所分配的内存,因为以前的版本分配了一个小的列表数组。psuedo代码如下所示:
|
![]() |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
![]() |
shekharsabale · 从列表元素捕获子字符串 2 年前 |
![]() |
The Great · 拆分并存储数据帧,但名称基于特定列中的唯一值 2 年前 |
![]() |
Klimt865 · Python中的列表列表 2 年前 |
![]() |
Klimt865 · 在Python中将数组列表转换为列表列表 2 年前 |