如何从结尾到开头迭代 unordered_set

Kam*_*mel 2 c++11

我想从结尾到开头迭代一个 unordered_set:

unordered_set<Expression*> BlocExpressions;

for(auto it=BlocExpressions.end(); it != BlocExpressions.begin(); it--){   

                //do some work

            }
Run Code Online (Sandbox Code Playgroud)

但是没有运算符 -- 声明。

那么,我应该对 -- 运算符进行编码,还是有办法做到这一点?

Lin*_*gxi 6

对于std::unordered_set,您遍历元素的顺序无关紧要。这么说,你可以想象这个顺序是随机的。无论您进行前向迭代还是后向迭代,您都不会得到特定的顺序。这就是为什么它不提供反向迭代器,也不提供--普通迭代器的运算符重载。向前和向后迭代在这里具有相同的语义:以随机顺序迭代。