Menu
CoddyTech

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 10

 Pada 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 valid
challenge icon

Tantangan

Sedang

Diberikan 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
50
Output
11 21 31 41 51

Coba 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