2013-08-04 89 views
0

我熟悉標準庫關聯容器映射和序列容器映射。但我似乎無法理解一套的目的。雖然試圖瞭解std :: set在線我遇到以下聲明與標準關聯容器集合和向量相混淆

一個集合是一個STL容器,存儲值並允許輕鬆查找。 例如,您可能有一組字符串:

std::set<std::string> S; 

您可以通過編寫

S.insert("foo";. 

一組可能不包含多個添加新元素元素具有相同的密鑰,所以如果S已經包含字符串「foo」,插入將不會添加任何內容;相反,它只是查找舊的元素。返回值包括 狀態代碼指示新元素是否得到了插入

所以從上面的文字在我看來,像集容器只存儲密鑰,是不是像一個地圖存儲密鑰和一個值。如果這是真的,爲什麼它是一個關聯容器而不是像地圖那樣的序列容器?

回答

0

它不是一個真正的關聯容器,因爲它只存儲值。它具有一個數學集合的屬性,如果你不止一次地放入相同的值,那麼你仍然只能得到一個實例。這可能非常有用。假設您試圖獲取文檔中所有單詞的列表;一套會很棒,因爲它們會在文本中出現很多次,但你只會得到集合中每個單詞的一個。

0

你可能會認爲它是一個關鍵字和布爾值的關聯,告訴關鍵是否存在於集合中。