回答
如果您在理解套件时一般不会感觉不好。大多数数学学位都花在即将与集合论方面:
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