回答
如果您在理解套件時一般不會感覺不好。大多數數學學位都花在即將與集合論方面:
http://en.wikipedia.org/wiki/Set_theory
想了一套獨特,無序對象的集合。在許多方面,它看起來像一個列表:
{1,2,3,4}
但順序是不重要的:
{4,3,2,1} = {1,2, 3,4}
和重複將被忽略:
{1,1,2,3,4} = {1,2,3,4}
A C++集是這樣的一個實施數學對象,這是奇怪的功能是排序內部。但這只是實現的細節,與理解數據結構無關。排序只是爲了提高速度。
C++ STL集合是關聯映射,保證集合中元素的排序和唯一性(Multisets保證前者而不是後者)。
它們通常用作集合操作的一部分 - 諸如工會,交叉點以及涉及包含/排除集合中元素的其他交互。
「設置」是一種存儲多個但唯一對象的集合。當你想要收集物體時,它很有用,但是你不關心它們的順序或者它裏面有多少個同樣的物體。
更多細節請參見本:Set in C++
一組是不同 對象的集合,在 其本身視爲一個對象。集是 數學中最基本的概念之一 。雖然它在19世紀末被髮明爲 ,但現在理論是 數學中普遍存在的一部分,並且可以用作基礎,從中可以導出幾乎所有的數學。
STL set
是a red-black tree(至少這是我怎麼想它的實現)
看它的另一種方式。
因此,性能,快速的元素的搜索,排序元素,元素的獨特性,有序橫向等等。
當您想要跟蹤唯一元素(例如唯一字符串或整數列表)時,它非常有用,但您也可以存儲更復雜的結構。
它們是什麼?
一組是一個集合。
一組就像是一個字典或鍵/值對的'映射',除了它只存儲(是一組鍵)而沒有相關聯的值。
一組任一或不包含每個可能的密鑰值的一個實例。例如,一組整數可能包含值{0,1,5}。一個值(例如5)不能在集合中被多次包含(如果你對一個給定的鍵值多次調用集合的插入方法,集合仍然只包含該鍵值的一個實例)。
它們的用法?
我幾乎不會像地圖一樣頻繁地使用它們。
有一次我用一組是,如果我這就給遠三分球這一個客戶端使用作爲手柄庫。我將保留一個包含我創建的所有有效句柄值的私有集合。當客戶端給我一個句柄時,我會通過測試該值是否包含在我的集合中來測試句柄是否爲有效句柄。
讓我感到困惑的設置代碼正是像跟蹤手柄一樣使用它們。 – 2009-09-08 02:04:29
對於C++的無序執行的套,檢查出Boost.Unordered。在許多情況下,這是比STL集合更好的選擇,我個人或多或少地用它來逐步構建排序列表。
- 1. 什麼是JavaScript對象,它們什麼時候有用?
- 2. 什麼是SWC,什麼時候/我們在Flash中使用SWC
- 3. CourseCompletions是什麼?它們是什麼時候創建的?
- 4. divs什麼時候填滿水平空間,他們什麼時候不需要?
- 5. 什麼是BigInteger,我們什麼時候可以使用它?
- 6. 「setNeedsUpdateConstraints」和「layoutIfNeeded」之間的區別是什麼?他們什麼時候會被叫?
- 7. 什麼時候在C#中使用get和set屬性?
- 8. 什麼是跨域cookie?他們真的有用嗎?如果是的話什麼時候使用
- 9. 什麼是堆棧用於?他們爲什麼使用C++?
- 10. C#多態 - 爲什麼&什麼時候
- 11. addEvents的要點/效用是什麼?它什麼時候有用?
- 12. Ruby中的祖先是什麼?他們的用途是什麼?
- 13. PHP中的閉包...究竟是什麼,他們什麼時候需要使用它們?
- 14. 什麼是http標題,什麼時候需要指定它們
- 15. 什麼時候是K 1024,什麼時候是1000?
- 16. 什麼時候File.join有用?
- 17. 什麼時候InputStream.available()有用?
- 18. 什麼時候__proto__有用?
- 19. 什麼時候是SqlConnection.RetrieveStatistics()有用?
- 20. 什麼時候引發火災,沒有他們
- 21. 什麼時候我們使用let rec?
- 22. Android:我們什麼時候使用getIntent()?
- 23. 我們什麼時候使用XMLSerialization?
- 24. 當他們說LINQ是可組合的時候,它們是什麼意思?
- 25. 什麼是謙虛對象模式,什麼時候有用?
- 26. 什麼時候返回空集合,什麼時候不是?
- 27. 什麼時候注入構造函數,什麼時候是CDI
- 28. 什麼時候在C#中使用類?
- 29. 什麼時候在C++中使用「declare」?
- 30. QTreeWidget :: currentItem什麼時候沒有選擇什麼時候返回?
http://www.google.com/search?q=c%2B%2B+sets – Aziz 2009-09-07 22:50:47
是的感謝。我甚至閱讀了關於集合的維基百科文章,但是我發現的所有定義都是關於「抽象數據結構」和「有限集合」的定義。我想我只是希望得到一個「傻瓜式」簡單的英文解釋......所以我想我不能因爲暗示我愚蠢而不是真正的幫助而責怪你。 – 2009-09-07 22:59:51
@Monte,如果我以任何方式冒犯了你,我表示歉意。我只是建議搜索谷歌,因爲有很多文章解釋有關的概念。 – Aziz 2009-09-07 23:32:29