是否存在功能类似于Delphi“set”的STL容器,以下代码取自DelphiBasics:
type
TDigits = set of '1'..'9'; // Set of numeric digit characters
var
digits : TDigits; // Set variable
myChar : char;
begin
digits := ['2', '4'..'7'];
// Now we can test to see what we have set on:
for myChar := '1' to '9' do
begin
if (myChar In digits) then
DoSomething()
else
DoSomethingElse();
end;
end;
答案 0 :(得分:7)
与Delphi set of
最接近的等价物是std::bitset
标题中的STL <bitset>
容器。
相似点:
std::bitset::set
等于Delphi中的Include()
; std::bitset::reset
等于Delphi中的Exclude()
; std::bitset::test()
等于Delphi中的in
; |
,&
,<<
,>>
,^
等。的差异:
set
的最大大小为256位,因此如果要创建更大的集合,则必须使用array [1..N] of set of byte
之类的内容。在C ++中,std::bitset
没有这个限制; set
位按值包含/排除。在C ++中,std::bitset
位由索引设置/重置。