C++11中是否有逆向范围for循环?

7

可能是重复问题:
C++11反向范围for循环

C++11中是否有反向范围for的功能?

我想要像这样做:

for(int value : vec)
{
    cout << value << endl;
}

为了实现这个目标:
for(auto it = vec.rbegin(); it != vec.rend(); ++it)
{
    cout << *it << endl;
}

例如:
for(int value : -vec)
{
    cout << value << endl;
}    

有没有可能像这样做一个反向循环?

4
我相信大多数STL容器都提供了反向迭代器,是吗?(对于那些在不能使用Boost的大型项目中的人而言) - im so confused
2
“有没有 C++11 的解决方案” 是什么意思?如果你的意思是 “有没有不用 Boost 的解决方案”,那么答案,一如既往,是肯定的:实现与 Boost 相同的东西。 - R. Martinho Fernandes
1个回答

12

4
为什么C++开发者坚持使用如此奇怪的语法?reversed(vec)这样的语法不好吗? - Brendan Long
14
boost::adaptors::reverse(vec)(意思是故意漏掉了“d”)也可以使用。但使用符号|允许在不显得LISPy的情况下链接多个适配器。 - R. Martinho Fernandes
3
@BrendanLong,为什么有些问题明确在文档中已经解释了,但人们还会提出这样的问题?难道看一下说明书很难吗?你从没用过Unix管道吗?如果你用过,语法就不那么奇怪了;如果你没用过,给你一个硬币,孩子 - Jonathan Wakely
2
@NicolBolas << 就是我所说的 C++ 人使用奇怪语法的例子 ;) 问:如何在 C++ 中打印输出?答:将 cout 按字符串的值进行位移。 - Brendan Long
2
@JonathanWakely 我在bash中使用过管道,但没有在C++中使用过。我怀疑很少有人会抱怨C++“不够像bash”。 - Brendan Long
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接