20 Kasım 2008, PERŞEMBE
Bir STL listesi temizlik/işaretçiler vektör
C güvenli bir şekilde işaretçiler vektör ya da bir listesini temizlemek için yapabildiğin en kısa parça nedir? (Ara varsayarak işaretçileri sil?)
list<Foo*> foo_list;
Oldukça akıllı işaretçiler ile benim işaretçiler Artırmak şal kullanmak istiyorum.
CEVAP
20 Kasım 2008, PERŞEMBE
std::list<T*>
kullanmak için:
while(!foo.empty()) delete foo.front(), foo.pop_front();
std::vector<T*>
kullanmak için:
while(!bar.empty()) delete bar.back(), bar.pop_back();
std::list
back
yerine front
yukarıdaki neden aldığımı bilmiyorum. Daha hızlı olduğunu hissediyorum. Ama aslında her ikisi de sabit zaman :). Yine de bir işlevi içine sarın ve eğlenin
template<typename Container>
void delete_them(Container& c) { while(!c.empty()) delete c.back(), c.pop_back(); }
Bunu Paylaş:
vektör STL vs listesi...
C Nesnelere İşaretçiler Vektör...
Python azalan sıralama listesi...
Java Listesi.() Ekle UnsupportedOperat...
Handler "ExtensionlessUrlHandler-...