【发布时间】:2017-04-07 06:39:01
【问题描述】:
我正在尝试遍历一个双端队列以排除最后一个条目。理想情况下,我会避免计算和比较长度,所以我尝试了
auto it_end = dq.rbegin(); it_end++;
for ( auto it = dq.begin(); it !=it_end; ) {
if ( cond() ) {
it = dq.erase( it );
} else {
it++;
}
}
但是编译器抱怨没有匹配操作数,这似乎可以理解,因为我有一个反向迭代器和一个常规迭代器。有没有一种优雅的方法可以在避免计数的最后一个元素之前停止?比如,偏移量? 我也尝试过使用 ussign,但结果证明是引用而不是迭代器,所以 != 也不满意。
【问题讨论】:
标签: c++