Bagikan melalui


Kelas move_iterator

Templat kelas move_iterator adalah pembungkus untuk iterator. move_iterator menyediakan perilaku yang sama dengan iterator yang dibungkusnya (penyimpanan), kecuali mengubah operator dereferensi iterator yang disimpan menjadi referensi rvalue, mengubah salinan menjadi pemindahan. Untuk informasi selengkapnya tentang rvalue, lihat Deklarator Referensi Rvalue: &&&.

Sintaks

class move_iterator;

Keterangan

Templat kelas menjelaskan objek yang berulah seperti iterator kecuali saat didereferensikan. Ini menyimpan iterator akses acak jenis Iterator, diakses dengan cara fungsi base()anggota . Semua operasi pada move_iterator dilakukan langsung pada iterator yang disimpan, kecuali bahwa hasilnya operator* secara implisit ditransmisikan untuk value_type&& membuat referensi rvalue.

move_iterator Mungkin mampu melakukan operasi yang tidak ditentukan oleh iterator yang dibungkus. Operasi ini tidak boleh digunakan.

Konstruktor

Konstruktor Deskripsi
move_iterator Konstruktor untuk objek jenis move_iterator.

Typedefs

Nama jenis Deskripsi
iterator_type Sinonim untuk parameter RandomIteratortemplat .
iterator_category Sinonim untuk ekspresi yang lebih panjang typename dengan nama yang sama, iterator_category mengidentifikasi kemampuan umum iterator.
value_type Sinonim untuk ekspresi yang lebih panjang typename dengan nama yang sama, value_type menjelaskan jenis elemen iterator.
difference_type Sinonim untuk ekspresi yang lebih panjang typename dengan nama yang sama, difference_type menjelaskan jenis integral yang diperlukan untuk mengekspresikan nilai perbedaan antar elemen.
Pointer Sinonim untuk parameter RandomIteratortemplat .
referensi Sinonim untuk rvalue referensi value_type&&.

Fungsi anggota

Fungsi anggota Deskripsi
dasar Fungsi anggota mengembalikan iterator tersimpan yang dibungkus oleh .move_iterator

Operator

Operator Deskripsi
move_iterator::operator* Menampilkan (reference)*base().
move_iterator::operator++ Menaikkan iterator yang disimpan. Perilaku yang tepat tergantung pada apakah itu operasi preincrement atau postincrement.
move_iterator::operator-- Mengurangi iterator yang disimpan. Perilaku yang tepat tergantung pada apakah itu operasi pendahuluan atau pascadekremen.
move_iterator::operator-> Menampilkan &**this.
move_iterator::operator- Mengembalikan move_iterator(*this) -= dengan terlebih dahulu mengurangi nilai sebelah kanan dari posisi saat ini.
move_iterator::operator[] Menampilkan (reference)*(*this + off). Memungkinkan Anda menentukan offset dari basis saat ini untuk mendapatkan nilai di lokasi tersebut.
move_iterator::operator+ Mengembalikan move_iterator(*this) += nilai. Memungkinkan Anda menambahkan offset ke basis untuk mendapatkan nilai di lokasi tersebut.
move_iterator::operator+= Menambahkan nilai tangan kanan ke iterator yang disimpan, dan mengembalikan *this.
move_iterator::operator-= Mengurangi nilai sebelah kanan dari iterator yang disimpan, dan mengembalikan *this.

Persyaratan

Header:<iterator>

Namespace: std

move_iterator::base

Mengembalikan iterator tersimpan untuk ini move_iterator.

RandomIterator base() const;

Keterangan

Fungsi anggota mengembalikan iterator tersimpan.

move_iterator::d ifference_type

Jenis difference_type ini move_iterator typedef didasarkan pada sifat difference_typeiterator , dan dapat digunakan secara bergantian dengannya.

typedef typename iterator_traits<RandomIterator>::difference_type difference_type;

Keterangan

Jenisnya adalah sinonim untuk sifat typename iterator_traits<RandomIterator>::pointeriterator .

move_iterator::iterator_category

Jenis iterator_category ini move_iterator typedef didasarkan pada sifat iterator_categoryiterator , dan dapat digunakan secara bergantian dengannya.

typedef typename iterator_traits<RandomIterator>::iterator_category  iterator_category;

Keterangan

Jenisnya adalah sinonim untuk sifat typename iterator_traits<RandomIterator>::iterator_categoryiterator .

move_iterator::iterator_type

Jenis iterator_type ini didasarkan pada parameter RandomIterator templat untuk templat move_iteratorkelas , dan dapat digunakan secara bergantian di tempatnya.

typedef RandomIterator iterator_type;

Keterangan

Jenisnya adalah sinonim untuk parameter RandomIteratortemplat .

move_iterator::move_iterator

Membuat iterator pemindahan. Menggunakan parameter sebagai iterator yang disimpan.

move_iterator();
explicit move_iterator(RandomIterator right);
template <class Type>
move_iterator(const move_iterator<Type>& right);

Parameter

right
Iterator untuk digunakan sebagai iterator tersimpan.

Keterangan

Konstruktor pertama menginisialisasi iterator tersimpan dengan konstruktor defaultnya. Konstruktor yang tersisa menginisialisasi iterator yang disimpan dengan base.base().

move_iterator::operator+=

Menambahkan offset ke iterator yang disimpan, sehingga iterator yang disimpan menunjuk ke elemen di lokasi baru saat ini. Operator kemudian memindahkan elemen baru saat ini.

move_iterator& operator+=(difference_type _Off);

Parameter

_Off
Offset untuk ditambahkan ke posisi saat ini untuk menentukan posisi baru saat ini.

Tampilkan Nilai

Mengembalikan elemen baru saat ini.

Keterangan

Operator menambahkan _Off ke iterator yang disimpan. Kemudian mengembalikan *this.

move_iterator::operator-=

Berpindah ke sejumlah elemen sebelumnya yang ditentukan. Operator ini mengurangi offset dari iterator yang disimpan.

move_iterator& operator-=(difference_type _Off);

Parameter

Keterangan

Operator mengevaluasi *this += -_Off. Kemudian mengembalikan *this.

move_iterator::operator++

Menaikkan iterator tersimpan yang termasuk dalam ini move_iterator. Elemen saat ini diakses oleh operator postincrement. Elemen berikutnya diakses oleh operator pra-tahapan.

move_iterator& operator++();
move_iterator operator++(int);

Parameter

Keterangan

Operator pertama (preincrement) menaikkan iterator yang disimpan. Kemudian mengembalikan *this.

Operator kedua (postincrement) membuat salinan *this, mengevaluasi ++*this. Kemudian mengembalikan salinan.

move_iterator::operator+

Mengembalikan posisi iterator tingkat lanjut dengan sejumlah elemen.

move_iterator operator+(difference_type _Off) const;

Parameter

Keterangan

Operator mengembalikan move_iterator(*this) += _Off.

move_iterator::operator[]

Memungkinkan akses indeks array ke elemen di seluruh rentang move iterator.

reference operator[](difference_type _Off) const;

Parameter

Keterangan

Operator mengembalikan (reference)*(*this + _Off).

move_iterator::operator--

Operator anggota pra-dan pascadekremen melakukan dekremen pada iterator yang disimpan.

move_iterator& operator--();
move_iterator operator--();

Parameter

Keterangan

Operator anggota pertama (pendahuluan) mengurangi iterator yang disimpan. Kemudian mengembalikan *this.

Operator kedua (postdecrement) membuat salinan *this, mengevaluasi --*this. Kemudian mengembalikan salinan.

move_iterator::operator-

Mengurangi iterator yang disimpan dan mengembalikan nilai yang ditunjukkan.

move_iterator operator-(difference_type _Off) const;

Parameter

Keterangan

Operator mengembalikan move_iterator(*this) -= _Off.

move_iterator::operator*

Dereferensi iterator yang disimpan dan mengembalikan nilai . Tindakan ini berulah seperti rvalue reference dan melakukan penetapan pemindahan. Operator mentransfer elemen saat ini keluar dari iterator dasar. Elemen yang mengikuti menjadi elemen baru saat ini.

reference operator*() const;

Keterangan

Operator mengembalikan (reference)*base().

move_iterator::operator->

Seperti normal RandomIterator operator->, ini menyediakan akses ke bidang yang termasuk dalam elemen saat ini.

pointer operator->() const;

Keterangan

Operator mengembalikan &**this.

move_iterator::p ointer

Jenis pointer ini typedef didasarkan pada iterator RandomIterator acak untuk move_iterator, dan dapat digunakan secara bergantian.

typedef RandomIterator  pointer;

Keterangan

Jenisnya adalah sinonim untuk RandomIterator.

move_iterator::referensi

Jenis reference ini didasarkan pada value_type&& move_iterator, dan dapat digunakan secara bergantian dengan value_type&&typedef .

typedef value_type&& reference;

Keterangan

Jenisnya adalah sinonim untuk value_type&&, yang merupakan referensi rvalue.

move_iterator::value_type

Jenis value_type ini move_iterator typedef didasarkan pada sifat value_typeiterator , dan dapat digunakan secara bergantian dengannya.

typedef typename iterator_traits<RandomIterator>::value_type   value_type;

Keterangan

Jenisnya adalah sinonim untuk sifat typename iterator_traits<RandomIterator>::value_typeiterator .

Lihat juga

<iterator>
Lvalues dan Rvalues
Pindahkan Konstruktor dan Pindahkan Operator Penugasan (C++)
Referensi pustaka standar C++