小编MBe*_*ett的帖子

向后迭代

假设我有一个vector<int> myvec,我想反过来遍历所有元素.我可以想到几种方法:

for (vector<int>::iterator it = myvec.end() - 1; it >= myvec.begin(); --it)
{
    // do stuff here
}

for (vector<int>::reverse_iterator rit = myvec.rbegin(); rit != myvec.rend(); ++rit)
{
    // do stuff here
}

for (int i = myvec.size() - 1; i >= 0; --i)
{
    // do stuff here
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是我什么时候应该使用它们?有区别吗?我知道第一个是危险的,因为如果我传入一个空的向量,那么myvec.end() - 1是未定义的,但是这有什么其他的危险或效率低下吗?

c++ iterator loops

5
推荐指数
2
解决办法
1761
查看次数

标签 统计

c++ ×1

iterator ×1

loops ×1