std::move_iterator<Iter>::base

来自cppreference.com
 
 
迭代器库
迭代器概念
迭代器原语
算法概念与工具
间接可调用概念
常用算法要求
(C++20)
(C++20)
(C++20)
工具
(C++20)
迭代器适配器
范围访问
(C++11)(C++14)
(C++14)(C++14)  
(C++11)(C++14)
(C++14)(C++14)  
(C++17)(C++20)
(C++17)
(C++17)
 
 
(1)
iterator_type base()const;
(C++17 起为 constexpr)
(C++20 前)
constexprconst iterator_type& base()const&noexcept;
(C++20 起)
constexpr iterator_type base()&&;
(2) (C++20 起)

返回底层迭代器。

1) 返回底层迭代器的副本(C++20 前)到底层迭代器的引用(C++20 起)
2) 返回从底层迭代器移动构造的迭代器。

目录

[编辑]返回值

2)std::move(current )

[编辑]示例

#include <algorithm>#include <iostream>#include <iterator>#include <vector>   int main(){std::vector<int> v{0, 1, 2, 3, 4};std::move_iterator<std::vector<int>::reverse_iterator> m1{v.rbegin()}, m2{v.rend()};   std::copy(m1.base(), m2.base(), std::ostream_iterator<int>(std::cout, " "));std::cout<<'\n';}

输出:

4 3 2 1 0

[编辑]缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
LWG 3391 C++20 重载 (1) 会复制底层迭代器 改为返回底层迭代器的引用
LWG 3593 C++20 重载 (1) 不是 noexcept 使之为 noexcept

[编辑]参阅

访问被指向的元素
(公开成员函数)[编辑]
close