名稱空間
變體
操作

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 前)
constexpr const 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

[編輯] 參閱

訪問指向的元素
(公共成員函式) [編輯]