我需要使用的德尔福套的优势,如“在” C++中的设置,如数据结构,但我不知道是否有像++套在C什么是C++
我的数据结构知道我可以用一个数组来代替,但正如我所说的,我想使用像“in”这样的set优势,那么是否有像C++中的set一样的内置数据结构?
如果是,请解释如何使用它,我还是在C++
首发。如果没有,有没有办法来表示它(exept阵列,因为我知道它)。
在此先感谢:)
我需要使用的德尔福套的优势,如“在” C++中的设置,如数据结构,但我不知道是否有像++套在C什么是C++
我的数据结构知道我可以用一个数组来代替,但正如我所说的,我想使用像“in”这样的set优势,那么是否有像C++中的set一样的内置数据结构?
如果是,请解释如何使用它,我还是在C++
首发。如果没有,有没有办法来表示它(exept阵列,因为我知道它)。
在此先感谢:)
有一个标准库容器调用std::set
...我不知道德尔福,但在一套简单的元素操作将通过使用find
方法及end
结果进行比较,来实现:
std::set<int> s;
s.insert(5);
if (s.find(5) != s.end()) {
// 5 is in the set
}
其他操作可以实现为标准库算法(std::union
,std::difference
...)
使用std::set
。请参阅http://www.cplusplus.com以供参考。
是的,有是一个C++ STL set
容器类DES第65页。 Stroustrup的TC++ PL(Special Ed。)的491。
在C++中没有任何类似的集成。根据您的需要,您可能希望使用位标志和位操作或std::bitset标准容器(当然除了std :: set之外)。如果您使用的是C++ Builder,那么还有一个模拟Delphi设置的类 - 在System.hpp中搜索BaseSet或SetBase或类似的东西 - 我不记得确切的名称。
STL算法具有以下 From MSDN
set_difference 团结所有属于一个排序源范围中的元素,但不与第二排序源范围,成一个单一的,分类目标范围,其中排序标准可以由二元谓词来指定。
set_intersection 团结所有同时属于这两个排序源的元件的范围成一个单一的,分类目标范围,其中,所述排序标准可以由二进制谓词来指定。
set_symmetric_difference 团结所有属于一个元件,而不是两者的排序源范围成一个单一的,分类目标范围,其中,所述排序标准可以由二进制谓词来指定。
set_union 团结所有属于的两个排序源的至少一个元素的范围成一个单一的,分类目标范围,其中,所述排序标准可以由二进制谓词来指定。
[`std :: set`](http://www.sgi.com/tech/stl/set.html)是一个集合。你可以`#include`来获得它。 –
birryree
2010-11-22 21:50:19
“set”及其本地运算符(in,+, - ,*)是Pascal(和Delphi)特有的。 C++使用模板实现了类似的功能,但是它们缺乏Pascal实现的优雅(尽管现在Pascal集限于255个元素) – 2010-11-22 22:31:59