코딩굼벵이
구르는 중
코딩굼벵이
  • 분류 전체보기 (115)
    • [C_C++]이론 공부 (17)
      • 알고리즘 (11)
      • 이론+STL (6)
    • [C_C++]코딩테스트 연습 (45)
      • [프로그래머스] level 1 (26)
      • [프로그래머스] level 2 (5)
      • [백준] 일반 문제 (12)
      • 기타 (2)
    • Solana (28)
      • Documentation (9)
      • Validator - 공부 (10)
      • Validator - 실행 (devnet & te.. (6)
      • 그 외 (3)
    • React (4)
    • Linux (2)
    • Javascript (2)
    • 블록체인 기반 핀테크 및 응용 SW 개발 (8)
      • React (1)
      • Javascript (3)
      • Solidity (3)
      • 프로젝트 (1)
    • 기타 (9)

블로그 메뉴

  • 🌟 깃허브
  • 🌿 Portfolio(2021)
  • 홈
  • 태그
  • 방명록

티스토리

최근 글

태그

  • grafana
  • 밸리데이터
  • 모니터링
  • Hooks #React
  • Immer #ContextAPI
  • 솔라나

인기 글

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
코딩굼벵이

구르는 중

[C_C++]이론 공부/이론+STL

[C++ STL] set 사용법 위주 공부

2021. 6. 29. 21:34
728x90

set 은 노드 기반 컨테이너로, 이진 균형 트리다. 때문에 삽입, 삭제, 검색 등의 작업이 용이하다.

숫자든 문자든 원소의 중복을 알아서 없애준다는 이점이 있어 사용법을 익혀두면 좋다.

원소는 insert 멤버 함수로 삽입되면 자동으로 정렬(오름차순)된다.

set 헤더( #include <set> )에 들어있고, vector랑 겹치는 멤버함수들이 있어 vector 공부 후 보니 좀 더 편한 것 같다.

 

Set 초기화

set<자료형> 변수명 기본 선언
set<자료형> 변수명(복사할 변수) 선언 후 복사한 값으로 초기화
set<자료형> 변수명 = 복사할 변수 선언 후 복사한 값으로 초기화
set<자료형> 변수명(복사할 변수.begin(), 복사할 변수.end()) 선언 후 복사한 값으로 초기화

 

Set 반복자(iterator)

s.begin() / s.end() set의 시작/마지막 원소(key)의 주소값 반환
(마지막은 정확히 원소 뒤 공백구간의 주소값)
s.rbegin() / s.rend() set의 마지막/시작 원소의 주소값 반환.
역으로 출력하고 싶을 때 주로 사용
s.cbegin() / s.cend() begin()/end() 와 동일하나 const로 반환
s.crbegin() / s.crend() rbegin()/rend() 와 동일하나 const로 반환

 

Set 삽입, 삭제(modifier)

s.insert() 값 삽입.
삽입 성공/삭제 여부는 pair<iterator, bool>으로 반환. 각각 pair.first, pair.second로 꺼낼 수 있음.
s.erase() 값 삭제. 범위나 반복자를 넣을 수도 있음.
s.swap() 다른 set과 서로 교환
s.clear() s의 원소 전부 삭제
s.emplace() move()로 객체 저장. pair<iterator, bool>으로 반환.
s.emplace_hint() 삽입될 위치에 대한 힌트 토대로 삽입

 

Set 기능(operation)

s.find(k) k가 가리키는 반복자 반환.
k가 없으면 s.end()와 같은 반복자 반환.
s.size() 원소 개수 반환
s.upper_bound(k) / s.lower_bound(k) 원소 k가 시작하는/끝나는 구간의 반복자 반환
s.equal_range(k) 원소 k가 시작하는 구간과 끝나는 구간의 반복자 pair 객체를 반환. (upper_bound와 lower_bound가 합쳐진 것)
s.empty() 비어있으면 true, 아니면 false

 

참고 블로그 : https://hwan-shell.tistory.com/130, https://blockdmask.tistory.com/79

 

[C++] set container 정리 및 사용법

안녕하세요. BlockDMask 입니다 ! 오늘은 연관 컨테이너 set, multiset, map, multimap 중 set에 대해 학습해보겠습니다. 순서는 set container -> set의 사용법 -> set의 생성자와 연산자 -> set의 멤버 함수 -..

blockdmask.tistory.com

 

 

C++ set 사용법과 설명...

set에 대해 설명하고자 합니다. 사용법도요. 아마 set을 사용하려고 검색하셔서 오시게 된 분이시라면, set의 특징을 잘 아시는 분일겁니다. 네, set의 특징은 다음과 같습니다. 1. 숫자든 문자든 중

hwan-shell.tistory.com

 

'[C_C++]이론 공부 > 이론+STL' 카테고리의 다른 글

[C++ STL] vector(벡터) 공부  (0) 2021.06.14
[C++] 클래스(class) 기본  (0) 2021.06.01
OOP(객체지향 프로그래밍)의 주요특징  (0) 2021.05.21
[C++] 데이터 타입(자료형)  (0) 2021.05.20
[C++] 메모리 영역 (메모리 구조), 정적할당과 동적할당  (0) 2021.05.20
    '[C_C++]이론 공부/이론+STL' 카테고리의 다른 글
    • [C++ STL] vector(벡터) 공부
    • [C++] 클래스(class) 기본
    • OOP(객체지향 프로그래밍)의 주요특징
    • [C++] 데이터 타입(자료형)
    코딩굼벵이
    코딩굼벵이
    구르는 재주 연마 중

    티스토리툴바