如何将一个列表<T>对象追加到另一个列表中
在C ++中,我有两个list<T>
对象A
和B
,我想将B
所有成员添加到A
的结尾。 我search了几个不同的来源,并没有find一个简单的解决scheme(ei A.append(B);
),这让我感到惊讶。
做这个的最好方式是什么?
碰巧,在这之后我不关心B(它会在下一行被删除),所以如果有一种方法可以利用这个来获得更好的性能,我也对此感兴趣。
如果你想追加B中的项目副本 ,你可以这样做:
a.insert(a.end(), b.begin(), b.end());
如果你想把B的项目移到 A的末尾(同时清空B),你可以这样做:
a.splice(a.end(), b);
在你的情况下,拼接会更好,因为它只需要调整链表中的几个指针。
一个使用boost的例子
std::list<T> A; // object A is a list containing T structure std::list<T> B; // object B is a list containing T structure // append list B to list A BOOST_FOREACH(auto &listElement, B) { A.push_back( listElement ); }