【发布时间】:2014-03-11 17:58:13
【问题描述】:
我需要成对合并列表元素,合并前两个,然后合并后两个,依此类推,如果最后一个元素没有成对,则保持不变。例如,如果我通过添加对来合并从零到十的数字列表,我会从顶部列表转到下面的底部列表。
0 1 2 3 4 5 6 7 8 9 10
1 5 9 13 15 10
(为了便于阅读,第二个列表中有额外的空白,但它的大小应该是六个,并且它不应该有任何空元素。) 这是一个非常简化的例子;我的实际程序正在使用合并功能
void merge(Obj *a, Obj *b)
在指向对象的指针列表上。
std::list<Obj*> myList;
如何像这样成对地遍历列表?
【问题讨论】:
-
应该是作业吗?
-
这个问题很不清楚。你的意思不是合并,你的意思是添加。而
std::list<*Obj>不是有效类型。 -
不,我正在实现一个配对堆。在我的整数示例中,我添加了它们,但是需要使用合并函数以更复杂的方式合并对象。合并功能实现不相关。我已将 list 更正为 list
. -
啊,我明白了……好吧,我没有从问题中得到答案