我想以相反的顺序遍历矢量并检查数字1的连续存在。当检查第一个(最后一个)元素时,如何防止越界。 这是我到目前为止编写的代码。提前谢谢。
vector<int> bits;
for (vector<int>::reverse_iterator i = bits.rbegin();i != bits.rend(); ++i) {
int ctr = 0;
auto be = bits.rbegin();
auto prev = std::next(be, ctr);
auto nx = std::next(be, ctr - 1);
if ((*nx) == 1 && (*be) == 1 )
{
count_one++;
}
ctr++;
}
答案 0 :(得分:0)
以下是我完成工作的代码。希望这有助于某人。
std::vector<int>::iterator i = bits.begin();
if (bits.size() > 1){
while (i < bits.end() - 1) {
pr = std::next(i, 1);
if (*i == 1 && *pr == 1) {
count_one = count_one + 1;
}
i = i + 2;
}
}