Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menentukan iterator yang telah ditentukan sebelumnya dan melakukan streaming iterator, primitif iterator, dan templat pendukung.
Persyaratan
Header: <iterator>
kumpulan nama XML: 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 Aman: 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. |
Operator
| 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. |
Lihat juga
Referensi File Header
Keamanan utas di Pustaka Standar C++
Referensi pustaka standar C++