-
Notifications
You must be signed in to change notification settings - Fork 21
Expand file tree
/
Copy pathiterator.cpp
More file actions
45 lines (34 loc) Β· 1.94 KB
/
Copy pathiterator.cpp
File metadata and controls
45 lines (34 loc) Β· 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//############################################################
// | cafe | http://cafe.naver.com/dremdelover |
// | Q&A | https://open.kakao.com/o/gX0WnTCf |
// | business | ultrasuperrok@gmail.com |
//############################################################
#include <iostream>
#include <vector>
#include <list>
using namespace std;
// μ΄ν°λ μ΄ν°(iterator)λ STL 컨ν
μ΄λμ μμλ€μ μννκΈ° μν ν¬μΈν°μ μ μ¬ν κ°μ²΄μ
λλ€.
// - λ€μν STL 컨ν
μ΄λλ€μ μμ λ§μ μ΄ν°λ μ΄ν° νμ
μ μ 곡ν©λλ€.
// μ’μ μ¬μ© μκΈ°:
// - 컨ν
μ΄λμ μμλ€μ μννκ±°λ, νΉμ μμΉμ μμμ μ κ·Όνκ³ μΆμ λ.
// μ±λ₯ μ΄μ:
// - μΌλ°μ μΌλ‘ μ΄ν°λ μ΄ν°μ μ°μ°λ€μ μμ μκ° λ³΅μ‘λλ₯Ό κ°μ§λλ€. νμ§λ§ μ΄ν°λ μ΄ν°μ μ’
λ₯(μ: forward iterator, bidirectional iterator, random access iterator)μ λ°λΌ κ°λ₯ν μ°μ°μ΄ λ€λ₯Ό μ μμ΅λλ€.
int main() {
vector<int> v = {1, 2, 3, 4, 5};
// begin, end: 컨ν
μ΄λμ μμκ³Ό λμ κ°λ¦¬ν€λ μ΄ν°λ μ΄ν° λ°ν, O(1)
vector<int>::iterator it = v.begin();
// * μ°μ°μ: μ΄ν°λ μ΄ν°κ° κ°λ¦¬ν€λ μμμ μ κ·Ό, O(1)
cout << "First element: " << *it << endl; // μΆλ ₯: First element: 1
// ++ μ°μ°μ: μ΄ν°λ μ΄ν°λ₯Ό λ€μ μμλ‘ μ΄λ, O(1)
++it;
cout << "Second element: " << *it << endl; // μΆλ ₯: Second element: 2
// += μ°μ°μ: μ΄ν°λ μ΄ν°λ₯Ό μ§μ λ μλ§νΌ μ΄λ (Random Access Iteratorμλ§ κ°λ₯), O(1)
it += 2;
cout << "Fourth element: " << *it << endl; // μΆλ ₯: Fourth element: 4
// μ΄ν°λ μ΄ν°λ₯Ό μ¬μ©ν μν μμ
for (vector<int>::iterator iter = v.begin(); iter != v.end(); ++iter) {
cout << *iter << " "; // μΆλ ₯: 1 2 3 4 5
}
cout << endl;
return 0;
}