反向遍历矢量并获取相邻元素的值

时间:2016-10-13 21:49:34

标签: c++ pointers

我想以相反的顺序遍历矢量并检查数字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++;
}

1 个答案:

答案 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;
    }
}