Chcę wyczyścić zawartość niektórych std::list
. Kolejność usuwania elementów jest dla mnie ważna. Zgodnie z danymi wyjściowymi z poniższego programu testowego, kolejność jest od pierwszego do ostatniego elementu. Czy to gwarantuje? Nie było to dla mnie jasne ze standardu C++ 2003.Jaka jest kolejność usuwania elementów ze std :: list?
#include <list>
#include <iostream>
struct A
{
A(int i) : I(i) {}
~A() { std::cout << I << std::endl; }
int I;
};
int main()
{
std::list<A> l;
l.push_back(A(1));
l.push_back(A(2));
l.push_back(A(3));
std::cout << "clearing list" << std::endl;
l.clear();
}
Po prostu z ciekawości: dlaczego kolejność usuwania jest dla Ciebie ważna? – nietaki
Jeśli jest to dla Ciebie ważne, możesz użyć funkcji kasowania(), aby usunąć je kolejno jeden po drugim. –
@GabrielSchreiber: ... lub 'pop_front()'. – kennytm