名稱空間
變體
操作

std::reverse_iterator<Iter>::operator=

來自 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)
 
 
template< class U >
reverse_iterator& operator=( const reverse_iterator<U>& other );
(自 C++17 起為 constexpr)

other.current 賦給 current

僅若 std::is_same_v<U, Iter>false,且 std::convertible_to<const U&, Iter>std::assignable_from<Iter&, const U&> 均被建模,此過載才會參與過載決議。

(C++20 起)

目錄

[編輯] 引數

其他 - 要賦值的迭代器介面卡

[編輯] 返回值

*this

[編輯] 示例

#include <iostream>
#include <iterator>
 
int main()
{
    const int a1[]{0, 1, 2};
    int a2[]{0, 1, 2, 3};
    short a3[]{40, 41, 42};
 
    std::reverse_iterator<const int*> it1{std::crbegin(a1)};
    it1 = std::reverse_iterator<int*>{std::rbegin(a2)};   // OK
//  it1 = std::reverse_iterator<short*>{std::rbegin(a3)}; // Compilation error:
                                                          // incompatible pointer types
    std::reverse_iterator<const short*> it2{nullptr};
    it2 = std::rbegin(a3); // OK
//  it2 = std::begin(a3);  // Compilation error: no viable operator= overload
    std::cout << *it2 << '\n';
}

輸出

42

[編輯] 缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
LWG 280 C++98 異構賦值是不允許的 允許
LWG 3435 C++20 轉換賦值運算子未被約束 已受約束

[編輯] 參閱

構造一個新的 reverse_iterator
(公開成員函式) [編輯]