Iterator Output
Pelajaran 15 dari 23 dalam kursus C++ - Standard Template Library di Coddy.
Output Iterator adalah iterator yang digunakan untuk mengubah nilai di dalam container. Iterator ini merupakan kebalikan dari input iterator dan menjalankan fungsi yang berlawanan. Iterator ini digunakan untuk menetapkan nilai dalam urutan, tetapi tidak dapat digunakan untuk mengakses nilai tersebut.

Seperti yang bisa kita lihat, forward iterator, bidirectional iterator , dan random access iterator semuanya merupakan output iterator yang valid.
Jadi, kita akan mempelajari fitur-fitur Output Iterator.
- Operator kesamaan/ketidaksamaan
Tidak seperti input iterator, output iterator tidak dapat dibandingkan satu sama lain untuk mengetahui apakah keduanya sama. Jadi, membandingkannya menggunakan operator==dan!=akan menghasilkan error.
A == B // Salah
A != B // Salah- Dereferensi
Kita menggunakan dereferensi pada input iterator untuk mengakses nilai elemen yang ditunjuk iterator. Dengan output iterator, kita menggunakan operator*untuk mendereferensi iterator agar kita dapat menetapkan nilai ke elemen yang ditunjuk iterator.
*A = 10 // Dereferensikan dengan *vector<int> numbers = {1, 2, 3, 4, 5};
vector<int>::iterator it;
for(it=numbers.begin(); it != numbers.end(); it++)
*it = 10;
for(it = numbers.begin(); it != numbers.end(); it++)
cout << *it << " ";Output:
10 10 10 10 10Pada contoh di atas, kita melakukan perulangan pada vector dan menetapkan nilai 10 ke setiap elemen menggunakan output iterator.
- Dapat diincremen
Output iterator dapat diincremen sehingga akan menunjuk ke elemen berikutnya dalam urutan setelah incrementasi. Untuk itu, kita menggunakan operator++
A++ // Operator penambahan setelahnya
++A // Operator penambahan sebelumnya- Dapat ditukar
Dua iterator yang menunjuk ke lokasi berbeda dapat ditukar.
Keterbatasannya adalah output iterator dapat digunakan untuk menetapkan nilai pada elemen yang ditunjuk iterator, tetapi kita tidak dapat mengakses nilai tersebut untuk, misalnya, menyimpan nilai elemen di variabel lain.
*A = x; // Valid
x = *A; // Tidak validTantangan
SedangDiberikan sebuah angka N dari input yang menunjukkan jumlah elemen dalam vector. Pada N baris berikutnya, kamu diberikan satu angka. Simpan semua angka di dalam vector. Setelah itu, gunakan iterator output untuk menetapkan nilai pada setiap elemen, yaitu nilainya ditambah satu, lalu tampilkan elemen yang telah diubah.
Input
5
10
20
30
40
50Output
11 21 31 41 51Coba sendiri
#include <vector>
#include <iostream>
using namespace std;
int main()
{
vector<int> numbers;
vector<int>::iterator it;
// Enter your code here
for(it = ; it != numbers.end(); )
{
}
for(it = ; ; )
{
cout << /* Enter here */ << " ";
}
return 0;
}Semua pelajaran di C++ - Standard Template Library
Latihan sendiri: Compiler C++ online