提问者:小点点

向量库:.begin()、.rbegin()、cbegin()、crbegin()之间的差异


我不明白

  1. .begin()和.cbegin()
  2. .rbegin()和.crbegin()

我通常只使用.begin()和.end()


共1个答案

匿名用户

>

  • constexpr迭代器begin()noexcept;

    返回一个迭代器,该迭代器在取消引用时返回对非const(可变)元素的引用。

    constexpr const_iterator cbegin()const noexcept;

    返回一个迭代器,该迭代器在取消引用时返回对const(不可变)元素的引用。

    constexpr const_iterator begin()const noexcept;

    请参阅Cbegin()。此begin()是当vector位于const上下文中时选择的重载。

    示例:

    void foo(std::vector<int> const& v) {
        auto it = v.begin(); // uses the last `begin()` because `v` is `const`
    }
    

    r版本是上述版本的反向版本。