<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_iterator C++20 |
Menentukan iterator yang dapat membaca dan menulis maju dan mundur. |
contiguous_iterator C++20 |
Menentukan iterator yang elemennya berurutan dalam memori, ukuran yang sama, dan dapat diakses menggunakan aritmatika penunjuk. |
forward_iterator C++20 |
Menentukan iterator yang dapat membaca (dan mungkin menulis) beberapa kali. |
input_iterator C++20 |
Menentukan iterator yang dapat Anda baca dari setidaknya sekali. |
input_or_output_iterator C++20 |
Dasar taksonomi konsep iterator. |
output_iterator |
Menentukan iterator yang dapat Anda tulis. |
random_access_iterator C++20 |
Menentukan iterator yang dapat Anda baca dan tulis menurut indeks. |
sentinel_for C++20 |
Menentukan sentinel untuk jenis iterator. |
sized_sentinel_for C++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++
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk