<iterator>

Menentukan iterator yang telah ditentukan sebelumnya dan melakukan streaming iterator, primitif iterator, dan templat pendukung.

Persyaratan

Header:<iterator>

Ruang nama:std

Keterangan

Iterator adalah generalisasi pointer yang memungkinkan program C++ bekerja dengan struktur data yang berbeda dengan cara yang seragam. Alih-alih beroperasi pada jenis data tertentu, algoritma beroperasi pada rentang nilai seperti yang ditentukan oleh semacam iterator. Algoritma dapat beroperasi pada struktur data apa pun yang memenuhi persyaratan iterator.

Di C++20, ada enam kategori iterator. Iterator diatur dalam hierarki kemampuan. Kemampuannya ditentukan oleh konsep C++20. Untuk deskripsi berbagai iterator dan kemampuannya, lihat Konsep iterator

Visual Studio telah menambahkan ekstensi ke iterator Pustaka Standar C++ untuk mendukung penelusuran kesalahan untuk iterator yang dicentang dan tidak dicentang. Untuk informasi selengkapnya, lihat pustaka Brankas: Pustaka Standar C++.

Anggota

Fungsi

Nama Deskripsi
advance Menaikkan iterator dengan jumlah posisi tertentu.
back_inserter Membuat iterator yang dapat menyisipkan elemen di bagian belakang kontainer tertentu.
begin Mengambil iterator ke elemen pertama dalam kontainer tertentu.
cbegin Mengambil iterator baca-saja ke elemen pertama dalam kontainer tertentu.
cend Mengambil iterator baca-saja ke elemen yang mengikuti elemen terakhir dalam kontainer yang ditentukan.
crbegin Dapatkan iterator baca-saja terbalik ke awal kontainer yang ditentukan.
crend Dapatkan sentinel di akhir pengembalian apa crbegin() .
data Dapatkan penunjuk ke elemen pertama dalam kontainer yang ditentukan.
distance Menentukan jumlah kenaikan antara posisi yang ditangani oleh dua iterator.
end Mengambil iterator ke elemen yang mengikuti elemen terakhir dalam kontainer yang ditentukan.
empty Uji apakah kontainer yang ditentukan kosong.
front_inserter Membuat iterator yang dapat menyisipkan elemen di bagian depan kontainer tertentu.
inserter Adaptor iterator yang menambahkan elemen baru ke kontainer pada titik penyisipan yang ditentukan.
make_checked_array_iterator Membuat yang checked_array_iterator dapat digunakan oleh algoritma lain. Catatan: Fungsi ini adalah ekstensi Microsoft dari Pustaka Standar C++. Kode yang diterapkan dengan menggunakan fungsi ini tidak portabel ke lingkungan build Standar C++ yang tidak mendukung ekstensi Microsoft ini.
make_move_iterator Mengembalikan iterator pemindahan yang berisi iterator yang disediakan sebagai iterator dasar yang disimpan.
make_unchecked_array_iterator Membuat yang unchecked_array_iterator dapat digunakan oleh algoritma lain. Catatan: Fungsi ini adalah ekstensi Microsoft dari Pustaka Standar C++. Kode yang diterapkan dengan menggunakan fungsi ini tidak portabel ke lingkungan build Standar C++ yang tidak mendukung ekstensi Microsoft ini.
next Mengulangi jumlah waktu yang ditentukan dan mengembalikan posisi iterator baru.
prev Melakukan iterasi secara terbalik dalam jumlah waktu tertentu dan mengembalikan posisi iterator baru.
rbegin Dapatkan iterator terbalik ke awal kontainer yang ditentukan.
rend Dapatkan iterator terbalik ke sentinel di akhir kontainer yang ditentukan.
size Dapatkan jumlah elemen.

Operators

Nama Deskripsi
operator!= Pengujian jika objek iterator di sisi kiri operator tidak sama dengan objek iterator di sisi kanan.
operator== Menguji apakah objek iterator di sisi kiri operator sama dengan objek iterator di sisi kanan.
operator< Menguji apakah objek iterator di sisi kiri operator kurang dari objek iterator di sisi kanan.
operator<= Menguji apakah objek iterator di sisi kiri operator kurang dari atau sama dengan objek iterator di sisi kanan.
operator> Menguji apakah objek iterator di sisi kiri operator lebih besar dari objek iterator di sisi kanan.
operator>= Menguji apakah objek iterator di sisi kiri operator lebih besar dari atau sama dengan objek iterator di sisi kanan.
operator+ Menambahkan offset ke iterator dan mengembalikan alamat baru reverse_iterator elemen yang disisipkan pada posisi offset baru.
operator- Mengurangi satu iterator dari yang lain dan mengembalikan perbedaannya.

Kelas

Nama Deskripsi
back_insert_iterator Templat kelas menjelaskan objek iterator output. Ini menyisipkan elemen ke dalam kontainer jenis Container, yang diaksesnya melalui objek yang dilindungi pointer yang disimpannya yang disebut kontainer.
bidirectional_iterator_tag Kelas yang menyediakan jenis pengembalian untuk iterator_category fungsi yang mewakili iterator dua arah.
checked_array_iterator Kelas yang mengakses array menggunakan akses acak, iterator yang diperiksa. Catatan: Kelas ini adalah ekstensi Microsoft dari Pustaka Standar C++. Kode yang diterapkan dengan menggunakan fungsi ini tidak portabel ke lingkungan build Standar C++ yang tidak mendukung ekstensi Microsoft ini.
forward_iterator_tag Kelas yang menyediakan jenis pengembalian untuk iterator_category fungsi yang mewakili iterator penerusan.
front_insert_iterator Templat kelas menjelaskan objek iterator output. Ini menyisipkan elemen ke dalam kontainer jenis Container, yang diaksesnya melalui objek yang dilindungi pointer yang disimpannya yang disebut kontainer.
input_iterator_tag Kelas yang menyediakan jenis pengembalian untuk iterator_category fungsi yang mewakili iterator input.
insert_iterator Templat kelas menjelaskan objek iterator output. Ini menyisipkan elemen ke dalam kontainer jenis Container, yang diaksesnya melalui objek yang dilindungi pointer yang disimpannya yang disebut kontainer. Ini juga menyimpan objek yang dilindungi iterator , dari kelas Container::iterator, yang disebut iter.
istream_iterator Templat kelas menjelaskan objek iterator input. Ini mengekstrak objek kelas Ty dari aliran input, yang diaksesnya melalui objek yang disimpannya, dari jenis penunjuk ke basic_istream<Elem, Tr>.
istreambuf_iterator Templat kelas menjelaskan objek iterator input. Ini menyisipkan elemen kelas Elem ke dalam buffer aliran output, yang diaksesnya melalui objek yang disimpannya, dari jenis pointer ke basic_streambuf<Elem, Tr>.
iterator Templat kelas digunakan sebagai jenis dasar untuk semua iterator.
iterator_traits Kelas pembantu templat menyediakan jenis penting yang terkait dengan jenis iterator yang berbeda sehingga dapat dirujuk dengan cara yang sama.
move_iterator Objek move_iterator menyimpan iterator akses acak jenis RandomIterator. Ini bersifat seperti iterator akses acak, kecuali ketika didereferensikan. Hasilnya operator* secara implisit dilemparkan untuk value_type&&: membuat rvalue reference.
ostream_iterator Templat kelas menjelaskan objek iterator output. Ini menyisipkan objek kelas Type ke dalam aliran output, yang diaksesnya melalui objek yang disimpannya, dari jenis pointer ke basic_ostream<Elem, Tr>.
ostreambuf_iterator Templat kelas menjelaskan objek iterator output. Ini menyisipkan elemen kelas Elem ke dalam buffer aliran output, yang diaksesnya melalui objek yang disimpannya, dari jenis penunjuk ke basic_streambuf<Elem, Tr>.
output_iterator_tag Kelas yang menyediakan jenis pengembalian untuk iterator_category fungsi yang mewakili iterator output.
random_access_iterator_tag Kelas yang menyediakan jenis pengembalian untuk iterator_category fungsi yang mewakili iterator akses acak.
reverse_iterator Templat kelas menjelaskan objek yang bersifat seperti iterator akses acak, hanya secara terbalik.
unchecked_array_iterator Kelas yang mengakses array menggunakan akses acak, iterator yang tidak dicentang. Catatan: Kelas ini adalah ekstensi Microsoft dari Pustaka Standar C++. Kode yang diterapkan dengan menggunakan fungsi ini tidak portabel ke lingkungan build Standar C++ yang tidak mendukung ekstensi Microsoft ini.

Konsep

Konsep berikut didefinisikan dalam std namespace layanan. Mereka berlaku untuk iterator, dan juga terkait dengan kategori iterator untuk rentang yang dijelaskan dalam <ranges> konsep.

Konsep iterator Deskripsi
bidirectional_iteratorC++20 Menentukan iterator yang dapat membaca dan menulis maju dan mundur.
contiguous_iteratorC++20 Menentukan iterator yang elemennya berurutan dalam memori, ukuran yang sama, dan dapat diakses menggunakan aritmatika penunjuk.
forward_iteratorC++20 Menentukan iterator yang dapat membaca (dan mungkin menulis) beberapa kali.
input_iteratorC++20 Menentukan iterator yang dapat Anda baca dari setidaknya sekali.
input_or_output_iteratorC++20 Dasar taksonomi konsep iterator.
output_iterator Menentukan iterator yang dapat Anda tulis.
random_access_iteratorC++20 Menentukan iterator yang dapat Anda baca dan tulis menurut indeks.
sentinel_forC++20 Menentukan sentinel untuk jenis iterator.
sized_sentinel_forC++20 Menentukan bahwa iterator dan sentinelnya dapat dikurangi (menggunakan -) untuk menemukan perbedaannya dalam waktu konstan.

Baca juga

Referensi File Header
Keamanan utas di Pustaka Standar C++
Referensi pustaka standar C++