Iterator Dua Arah
Pelajaran 17 dari 23 dalam kursus C++ - Standard Template Library di Coddy.
Iterator dua arah adalah iterator yang mendukung semua fitur iterator maju, tetapi juga mendukung dua operator decrement (pre dan post). Jadi, iterator dua arah dapat digunakan untuk mengakses dan mengubah urutan elemen ke dua arah, menuju akhir maupun menuju awal.

Seperti yang bisa kita lihat, iterator akses acak adalah iterator dua arah yang valid.
Jadi, kita akan mempelajari fitur-fitur iterator dua arah.
- Operator kesetaraan/ketidaksetaraan: Iterator dua arah dapat dibandingkan menggunakan operator kesetaraan atau operator ketidaksetaraan. Dua iterator sama hanya ketika keduanya menunjuk ke lokasi yang sama.
A == B // Kesamaan
A != B // Ketidaksamaan- Dereferensi
Kita dapat melakukan dereferensi pada iterator dua arah untuk menggunakan dua fungsinya, yaitu mengakses nilai elemen yang ditunjuk iterator dan menetapkan nilai ke elemen yang ditunjuk iterator.
*A = X;
X = *A;- Dapat dinaikkan / diturunkan
Iterator dua arah dapat dinaikkan menggunakan operator++, tetapi juga dapat diturunkan menggunakan operator--.
A++; // Operator inkremen setelahnya
++A; // Operator inkremen sebelumnya
A--; // Operator dekremen sebelumnya
--A; // Operator dekremen setelahnya- Dapat ditukar
Nilai satu iterator dua arah dapat ditukar dengan nilai iterator lainnya.
Kita dapat mengakhiri pelajaran dengan menyimpulkan bahwa iterator dua arah sangat mirip dengan iterator maju, yang menggabungkan iterator input dan output, tetapi juga dapat diturunkan. Artinya, iterator ini dapat mengakses elemen dalam urutan ke dua arah.
Tantangan
MudahKamu diberi 10 angka dalam satu baris dari input. Pada baris berikutnya, kamu diberi angka X yang menunjukkan indeks angka tersebut (indeks 1-10). Gunakan iterator dua arah, lalu keluarkan angka mulai dari indeks X hingga akhir. Setelah itu, keluarkan angka mulai dari indeks X dengan bergerak mundur hingga awal.
Input
10 20 30 40 50 60 70 80 90 100
6Output
60 70 80 90 100 60 50 40 30 20 10Coba sendiri
#include <vector>
#include <iostream>
using namespace std;
int main()
{
vector<int> numbers;
vector<int>::iterator it1, it2;
int x, y;
// Enter your code here
it1 = numbers.begin();
it1 += x - 1;
for(it1; it1 != numbers.end(); )
cout << << " ";
cout << endl;
for(it2; it2 != numbers.begin() - 1; )
cout << << " ";
return 0;
}Semua pelajaran di C++ - Standard Template Library
Latihan sendiri: Compiler C++ online