检查bool(范围)的向量是否等于1和0的序列

时间:2014-03-12 14:19:11

标签: c++ vector

之前我所拥有的是一串1和0,我可以简单地检查某个范围是否等于我想要的序列:

if (myString.substr(0, 4) == "1110") ...

由于内存原因,我已将此字符串设为vector<bool>,因为向量中的一个bool只需要1位而不是1字节。

现在,这是一个问题。我想和substr做同样的比较。可能没有像:

if(myVector[0] == true && myVector[1] == true && ...)

vector<bool> tmpVector;
tmpVector.push_back(true);
tmpVector.push_back(true);
...
if (myVector == tmpVector) ...

对此有更优雅的解决方案吗?

1 个答案:

答案 0 :(得分:5)

bool tmpVector[4] = {true, true, true, false};
if (std::equal(myVector.begin(), myVector.begin() + 4, tmpVector)) {
}