std::reverse_iterator<Iter>::operator=
來自 cppreference.com
template< class U > reverse_iterator& operator=( const reverse_iterator<U>& other ); |
(自 C++17 起為 constexpr) | |
僅若 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 (公開成員函式) |