之前我所拥有的是一串1和0,我可以简单地检查某个范围是否等于我想要的序列:
if (myString.substr(0, 4) == "1110") ...
Run Code Online (Sandbox Code Playgroud)
出于内存的原因,我已经将这个字符串化了vector<bool>,因为向量中的一个bool只需要1位而不是1个字节.
现在,这是一个问题.我想和我一样做比较substr.可能没有任何东西:
if(myVector[0] == true && myVector[1] == true && ...)
Run Code Online (Sandbox Code Playgroud)
要么
vector<bool> tmpVector;
tmpVector.push_back(true);
tmpVector.push_back(true);
...
if (myVector == tmpVector) ...
Run Code Online (Sandbox Code Playgroud)
有更优雅的解决方案吗?
bool tmpVector[4] = {true, true, true, false};
if (std::equal(myVector.begin(), myVector.begin() + 4, tmpVector)) {
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |