如何使用for(int i:myVector)代码样式知道元素是否是向量中的最后一个元素?

时间:2015-04-30 03:41:21

标签: c++

for(int& i:myVector){
   ...
}

有没有方法可以知道我是否是使用此代码样式的最后一个元素而不使用额外的变量或方法(例如:count,myVector.size())?

喜欢

for(vector<int>::iterator it=myVector.begin();it!=myVector.end();++it){
    if(it!=end()-1){
        ...
    }
}

1 个答案:

答案 0 :(得分:2)

答案是否定的,没有使用辅助计数就无法找到索引。基于范围的表示法是从您隐藏索引并为您提供解除引用的迭代器。基于范围的for相当于(from cppreference):

{
    auto && __range = range_expression ; 
    for (auto __begin = begin_expr,
    __end = end_expr; 
    __begin != __end; ++__begin) { 
        range_declaration = *__begin; 
        loop_statement 
    } 
} 

如果您需要基于索引的访问,请使用普通的旧迭代器。