Moments of growth

STL 본문

Algorithm [C++]/개념 정리

STL

뮤링이 2022. 5. 12. 21:27

자꾸 헷갈려서 정리해놓는 STL

 

1. vector

 

- 삽입

v.push_back(element)

 

- 삭제

v.pop_back()

 

- 전부 삭제

v.clear()

 

- 크기 반환

v.size()

 

- 비어있는지 확인

v.empty()

 

 

2. stack

 

- 삽입

st.push(element)

- 삭제

st.pop()

 

- 전부 삭제

while(!st.empty()) st.pop();

 

- 크기 반환

st.size()

 

- 비어있는지 확인

st.empty()

 

- 제일 위에 원소

st.top()

 

 

3. queue

 

- 삽입

q.push(element)

 

- 삭제

q.pop()

 

- 전부 삭제

while(!q.empty()) q.pop();

 

- 크기 반환

q.size()

 

- 비어있는지 확인

q.empty()

 

- 제일 앞에 원소

q.front()

 

 

4. deque

 

  • dq.push_front(3);
    - dq의 첫 번째 원소 앞에 원소 3을 삽입합니다.

 

  • dq.pop_front();
    - dq의 첫 번째 원소를 제거합니다.

 

  • dq.push_back(5);
    - dq의 마지막 원소 뒤에 원소 5를 삽입합니다.

 

  • dq.pop_back();
    - 마지막 원소를 제거합니다.

 

  • dq.assign(4, 3);
    - 3의 값으로 4개의 원소 할당.

 

  • dq[idx];
    - idx 번째 원소를 참조합니다.

 

  • dq.front();
    - 첫 번째 원소를 참조 합니다.

 

  • dq.back();
    - 맨 마지막 원소를 참조 합니다.

 

  • dq.clear();
    - 모든 원소를 제거합니다.

 

  • dq.begin();
    - 첫번째 원소를 가리킵니다. (iterator와 사용)
    - ex) deque<int>::iterator iter = dq.begin();

 

  • dq.end();
    - 마지막의 "다음"을 가리킵니다. (iterator와 사용)
    - ex) deque<int>::iterator iter = dq.end();

 

  • dq.rbegin();
    - reverse begin을 가리킵니다.
    - 맨 마지막원소를 마치 첫 번째 원소처럼 가리킵니다. (역으로)
    - iterator와 사용.
    - ex) deque<int>::iterator iter = dq.rbegin();

 

  • dq.rend();
    - reverse end 을 가리킵니다.
    - 맨 첫번째 원소의 "앞"을 마지막 원소의 "다음" 처럼 가리칩니다.
    - iterator와 사용.
    - ex) deque<int>::iterator iter = dq.rend();

 

  • dq.resize(n);
    - 크기를 n 으로 변경합니다.
    - 만약 크기가 더 커졌을 경우 비어있는 원소를 default값인 0으로 초기화 합니다.

 

  • dq.resize(n,2);
    - 크기를 n 으로 변경합니다.
    - 만약 크기가 더 커졌을 경우 빈 원소를 2로 초기화합니다.

 

  • dq.size();
    - 원소의 개수를 리턴합니다.

 

  • dq2.swap(dq1);
    - dq1과 dq2를 바꾸어 줍니다. (swap)

 

  • dq.insert(1, 2, 3);
    - 1번째 위치에 2개의 3값을 삽입합니다.
    - 삽입 시에 앞뒤 원소의 개수를 판단하여 적은 쪽으로 미루어서 삽입합니다.
    - 만약 앞의 원소의 개수가 적을 경우, 앞쪽으로 블록을 만들어서 원소를 옮기고 삽입합니다.
    - 만약 뒤의 원소의 개수가 적을 경우, 뒤쪽으로 블록을 만들어서 원소를 옮기고 삽입합니다.

 

  • dq.insert(3, 4);
    - 3번째 위치에 4의 값을 삽입합니다.
    - 삽입한 곳의 iterator를 반환합니다.

 

  • dq.erase(iter);
    - iter가 가리키는 원소를 제거합니다.
    - 제거 한 후 앞 뒤의 원소의 개수를 판단하여 적은쪽의 원소를 당겨서 채웁니다.
    - 제거한 곳의 iterator 를 반환합니다.

 

  • dq.empty()
    - dq가 비었으면 true를 반환합니다.

 

출처: https://blockdmask.tistory.com/73 [개발자 지망생]

 

 

5. priority_queue

 

- 삽입

pq.push(element)

 

- 삭제

pq.pop()

 

- 전부 삭제

while(!pq.empty) pq.pop();

 

- 크기 반환

pq.size()

 

- 비어있는지 확인

pq.empty()

 

- 제일 앞에 원소

pq.top()

 

 

6. map/set

 

- 삽입

insert({key, value}), insert(key)

 

- 삭제

erase(key)

 

- 전부 삭제

clear()

 

- key값에 해당하는 iterator 반환

find(key)

 

 

'Algorithm [C++] > 개념 정리' 카테고리의 다른 글

이진탐색  (0) 2022.06.27
Stack  (0) 2022.05.12
Comments