小编clo*_*ing的帖子

迭代一个左值

我想将一个左值传递给一个需要一对迭代器的函数,并且它就像我将一对迭代器传递给只包含这个值的范围一样.

我的方法如下:

#include <iostream>
#include <vector>

template<typename Iter>
void iterate_over(Iter begin, Iter end){
    for(auto i = begin; i != end; ++i){
        std::cout << *i << std::endl;
    }
}

int main(){
    std::vector<int> a{1,2,3,4};
    iterate_over(a.cbegin(), a.cend());

    int b = 5;
    iterate_over(&b, std::next(&b));
}
Run Code Online (Sandbox Code Playgroud)

这似乎在g ++ 5.2中正常工作,但我想知道这是否是实际定义的行为以及是否存在任何潜在问题?

c++ iterator c++11

6
推荐指数
1
解决办法
146
查看次数

标签 统计

c++ ×1

c++11 ×1

iterator ×1