w C ++ mam dwa list<T>
obiekty A
i B
chcę dodać wszystkie składowe B
na końcu A
. Przeszukałem kilka różnych źródeł i nie znalazłem prostego rozwiązania (ei A.append(B);
) i to mnie trochę zaskakuje.
Jaki jest najlepszy sposób, aby to zrobić?
Tak się składa, że po tym nie obchodzi mnie B (zostaje usunięte w następnej linii), więc jeśli istnieje sposób na wykorzystanie tego dla lepszej perfekcji, to też mnie to interesuje.
a.splice(a.end(), b)
ia.splice(a.end(), b, it_b_start)
, ale jest O (n) dlaa.splice(a.end(), b, it_b_start, it_b_end)
.jeden przykład z użyciem 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 ); }
źródło