2013-10-23 44 views
0

什麼是代表的功能,包括檢查,如果對象是在列表中未索引列表類?最佳標準類存儲對象列表?

list<char> list; 
list.add("obj"); 
if(list.inlist("obj")) doStuff(); 
list.remove("obj"); 

最好的類必須是標準的或升壓庫,但如果你知道任何其他方式回答反正,因爲它可能是有趣不管。

我知道有一個std::list類,但它並沒有我期待的功能。 (檢查是否有物體在列表中)

+1

您可以在列表中使用'find' – pippin1289

+1

取決於很多的要求,您可能對類檢查的對象。你需要經常找對象嗎?你需要保存訂單嗎? Etc ... – Erbureth

+0

@Erbureth將使用的唯一功能就是示例中的功能。任何花哨的東西都會被忽略。特別是'inlist'功能將被使用很多。 –

回答

0

您可以使用std::find找一個容器內的對象。

+0

在這種情況下什麼了是最好的容器使用?我猜想一個標準列表。 (因爲它不會浪費索引資源。) –

+0

矢量不存儲索引。 – Puppy

5

如果您只需要查找的對象,你可以使用std::setstd::multiset

如果C++ 11是一種選擇,你可以用自己的unorderedcounterparts

+0

這是一個很好的觀點。也許這些數據結構更合適。 – andre

+2

考慮使用'的std :: unordered_set'如果對象是可哈希和秩序是微不足道的。 – rightfold

+1

@未被右側摺疊如果允許C++ 11並且不需要設置交集/聯合,那麼這也是一個很好的選擇(好像是這種情況) – Erbureth