프로그래머스 코딩을 하다가, Set 마지막 원소를 참조해서 답을 찾는 문제가 있었다. 이 경우에, 역순 반복자를 쓰면 손쉽게 해결할 수 있다. 다음 예제를 보면 충분히 이해가 갈 것이다.
반복자를 사용하는 모든 자료 구조에서, 마지막 원소를 찾기 위해서 기본 반복자를 사용하지말고, 역순 반복자를 사용하면 O(1)만에 마지막 원소를 찾을 수 있다.
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
|
// set::rbegin/rend
#include <iostream>
#include <set>
using namespace std;
int main()
{
int myints[] = { 21,64,17,78,49 };
set<int> myset(myints, myints + 5);
//Iterator
set<int>::iterator it;
std::cout << "myset contains:";
for (it = myset.begin(); it != myset.end(); ++it)
cout << ' ' << *it;
cout << '\n';
// Reverse iterator
set<int>::reverse_iterator rit;
std::cout << "myset contains:";
cout << ' ' << *rit;
cout << '\n';
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
'컴퓨터공학 > 자료구조' 카테고리의 다른 글
정렬별 시간복잡도를 생각해보자(Bubble Sort, Selection Sort, Insertion Sort, Quick Sort, Merge Sort, Heap Sort, Time Complexity) (0) | 2020.11.21 |
---|---|
힙 트리란 무엇일까(Max, Min Heap Tree) (0) | 2020.11.20 |
[JAVA] 알고리즘에서 자주 쓰이는 자료구조 정리(예제, 사용시기, 백준, 프로그래머스, 필수 자료구조) (0) | 2020.08.29 |
[C++] 우선순위큐 구조체 사용하는 법, 알고리즘, 이론 (0) | 2020.01.25 |
Trie(트라이) 자료구조 정의, 예제 코드 (0) | 2019.12.01 |