我想清除一些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