之前我所拥有的是一串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) ...
对此有更优雅的解决方案吗?
答案 0 :(得分:5)
bool tmpVector[4] = {true, true, true, false};
if (std::equal(myVector.begin(), myVector.begin() + 4, tmpVector)) {
}