
C++ 의 reference는 1. 이미 존재하는 변수의 2. 메모리 주소를 저장한다.(포인터처럼) 이미 존재하는 대상의 주소를 그 녀석의 다른 이름으로 사용되는 것인데, 도입된 이유는 할당이 일어나는 상황에서(함수의 인자로 넘겨지는 경우도 포함하여) 메모리 문제와 관련 있다. C/C++ 에서는 할당의 기본이 Call-by-Value 이다. 쉽게 말해 원본이 아닌 카피본을 쓴다는 뜻이다. 어떤 타입을 aType 이라 하자. (int, double 처럼 제공되는 타입이든 사용자 정의든 상관없다.) aType x=a; 위의 평범한 할당문은 a 라고 이름 붙은 메모리의 내용을 x 라고 이름 붙은 메모리로 복사한다. 이후 메모리 a,x 에는 같은 정보가 기록되어 있을 뿐 서로 영향을 주지 않는다. a 를 변경하..

1. Header Set header 에는 'set' 과 'multiset', Map header 에는 'map' 과 'multimap' 이 정의되어 있다. 4개의 컨테이너를 동시에 다루는 이유는 (1) 모두 균형잡힌 이진트리(Red-Black Tree)로 구현되었으며 (2) method 가 거의 동일하기 때문이다. 모든 method 를 다루지는 않는다. 많이 쓰이는 method 들을 '생성->순회 or 탐색 -> 제거 -> 정리' 순서로 정리해 보자. 2. Construction (1) insert method 를 이용하여 하나씩 삽입하는 것이 직관적인 방식일 것이다. int arr[]={6, -5, 3, 11, -1}; set s1; map m1; for(int i=0;i

container 들의 모든 멤버들을 한꺼번에 열거하는 것은 경험상 별 도움이 안된다. 많은 요소들을 가진 저장소를 어떻게 이용할 것인가에 집중해보자. ⚙️ 모든 컨테이너에 공통되는 것부터 1-1. 저장소이니 얼마나 많이 저장하고 있는가를 알고 싶다. -> container.size( ) 1-2. 혹시 비어있나? -> container.empty( ); 1. vector 와 deque vector와 deque 모두 순차 접근을 기본으로 한다. 순차 접근 컨테이너를 둘로 만든 이유는 다음과 같다. vector는 대충 배열을 이용한다고 생각하면 되는데, 알다시피 배열은 앞 부분의 원소를 추가하는데 비용이 많이 든다. 그래서 선두에 추가, 삭제가 잦은 상황에 더 효율적으로 대응하기 위한 container가 d..
- Total
- Today
- Yesterday
- math font
- script
- Shell Programming
- Vim
- BOJ
- bash
- shell
- Aho-Corasick
- C++ big number
- javascript array
- RUBY
- bash script
- JavaScript
- fenwick tree
- 백준
- 세그먼트 트리
- persistent segment tree
- dynamic programming
- number theory
- python3
- map
- 다익스트라
- Dijkstra
- segment tree
- stack
- lazy propagation
- Reference
- max flow
- 정수론
- nearest common ancestor
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |