[英]std::equal with reverse_iterator
使用帶有std::equal
的reverse_iterator
是否合法?
例如,這些合法嗎?
std::equal(v.begin(), v.end(), w.rbegin())
std::equal(v.rbegin(), v.rend(), w.begin())
std::equal(v.rbegin(), v.rend(), w.rbegin())
所有的都是有效的,因為反向迭代器,事實上, 前向迭代器 。
“反向迭代器”不是迭代器類別。 記住一些迭代器類別:
*
)和遞增( ++
)的迭代器是一個前向迭代器。 +
和-
運算符。 另一方面,反向迭代器是一個雙向迭代器或一個反向查看集合的隨機訪問迭代器。 看着
http://www.cplusplus.com/reference/std/iterator/reverse_iterator/
...尤其是“成員類型”標題下的iterator_category所說的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.