我想清除一些std::list
的内容。去除元素的顺序对我来说很重要。根据以下测试程序的输出,顺序是从第一个到最后一个元素。它保证是如此吗?从C++ 2003标准来看,我并不清楚。清除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();
}
只是出于好奇:为什么删除命令对你很重要? – nietaki 2012-03-23 14:24:15
如果这对你来说很重要,你可以使用erase()手动一个接一个地擦除它们。 – 2012-03-23 14:25:35
@GabrielSchreiber:...或者'pop_front()'。 – kennytm 2012-03-23 14:26:46