我正在嘗試迭代deque以排除最後一個條目。理想情況下我會避免計數和比較長,所以我嘗試C++ deque迭代到倒數第二個元素
auto it_end = dq.rbegin(); it_end++;
for (auto it = dq.begin(); it !=it_end;) {
if (cond()) {
it = dq.erase(it);
} else {
it++;
}
}
但是編譯器會抱怨沒有匹配的操作數,這似乎可以理解的,因爲我有一個反向迭代器和一個普通的迭代器。在避免計數的最後一個元素之前有沒有優雅的方法停止?像,抵消? 我也嘗試過使用回來,但是原來這是一個不是迭代器的引用,所以!=也不高興。
不錯。這與解決問題一樣簡單。完美 – chrise