1+ #include < iostream>
2+ #include < vector>
3+ #include < list>
4+ /* *
5+ * @brief ITERATOR
6+ * iterator adalah pointer pintar yang mununjuk element dalam suatu container
7+ * iterator begin selalu mununjuk element pertama
8+ * iterator end selalu mununjuk element terakhir
9+ */
10+
11+ void _iterator (){
12+ /*
13+ iterator vector di sebut bidirectional iterator karena dapat bergerak maju dan mundur
14+ */
15+ std::vector<int >v = {1 ,2 ,3 ,4 ,5 };
16+ std::vector<int >::iterator it; // deklarasi iterator
17+ // akan mencetak element pada array v
18+ for (it = v.begin ();it != v.end ();++it){
19+ std::cout << *it << " " ;
20+ }
21+ std::cout << std::endl;
22+ // akan mencetak alamat memory
23+ for (it = v.begin ();it != v.end ();it += 2 ){
24+ std::cout << &it << " " ;
25+ }
26+ /*
27+ it selalu menunjuk alamat memory dari vector v
28+ *it arti nya melakukan deferencing terhadap alamat memory tersebut
29+ */
30+ std::list<int >l= {1 ,2 ,3 ,4 ,5 ,6 ,7 };
31+ std::list<int >::iterator lst;
32+ std::cout << std::endl;
33+ /* *
34+ * list hanya dapat bergerak satu arah karena memakai linked list
35+ * linked list menyimpan data secara tidak beraturan,semua data tersebar di heap
36+ * tp masing node punya alamat ke node berikut nya.
37+ * berbeda dengan array yg berurutan di heap atau di stack
38+ */
39+ for (lst = l.begin ();lst != l.end ();lst++){
40+ std::cout << *lst << " " ;
41+ }
42+ }
43+ int main (){
44+ _iterator ();
45+ // std::cin.get();
46+ return 0 ;
47+ }
0 commit comments