std::move_iterator<Iter>::base
來自 cppreference.com
(1) | ||
iterator_type base() const; |
(自 C++17 起為 constexpr) (C++20 前) |
|
constexpr const iterator_type& base() const& noexcept; |
(C++20 起) | |
constexpr iterator_type base() &&; |
(2) | (C++20 起) |
返回底層迭代器。
1) 返回底層迭代器的副本(直到 C++20)引用(C++20 起)。
2) 返回從底層迭代器移動構造的迭代器。
目錄 |
[編輯] 返回值
1)
current
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 |
[編輯] 參閱
訪問指向的元素 (公共成員函式) |