STL容器相当于Delphi的设置?

时间:2015-04-23 16:58:59

标签: c++ delphi stl

是否存在功能类似于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;

1 个答案:

答案 0 :(得分:7)

与Delphi set of最接近的等价物是std::bitset标题中的STL <bitset>容器。

相似点:

  • 您可以在开头设置其范围;
  • std::bitset::set等于Delphi中的Include();
  • std::bitset::reset等于Delphi中的Exclude();
  • std::bitset::test()等于Delphi中的in;
  • 您可以使用按位运算符(|&<<>>^等。

的差异:

  • 在Delphi中,set的最大大小为256位,因此如果要创建更大的集合,则必须使用array [1..N] of set of byte之类的内容。在C ++中,std::bitset没有这个限制;
  • 在Delphi中,set位按值包含/排除。在C ++中,std::bitset位由索引设置/重置。