簡體   English   中英

std ::與reverse_iterator相等

[英]std::equal with reverse_iterator

使用帶有std::equalreverse_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM