我想从结尾到开头迭代一个 unordered_set:
unordered_set<Expression*> BlocExpressions;
for(auto it=BlocExpressions.end(); it != BlocExpressions.begin(); it--){
//do some work
}
Run Code Online (Sandbox Code Playgroud)
但是没有运算符 -- 声明。
那么,我应该对 -- 运算符进行编码,还是有办法做到这一点?
对于std::unordered_set,您遍历元素的顺序无关紧要。这么说,你可以想象这个顺序是随机的。无论您进行前向迭代还是后向迭代,您都不会得到特定的顺序。这就是为什么它不提供反向迭代器,也不提供--普通迭代器的运算符重载。向前和向后迭代在这里具有相同的语义:以随机顺序迭代。