STL 컨테이너 별 사용도

2022. 1. 5. 16:47·알고리즘 이론

 

Sequence Container 시퀀스 컨테이너

 

 

리스트 (List)

- 저장할 데이터 개수가 가변적일 때 사용

- 데이터가 중간에 삽입되거나 삭제되는 경우가 많을 때 용이

- 데이터의 개수가 크거나 검색을 자주하면 비효율적 -> map, set, hash_map 사용하기

- 데이터에 임의 접근하지 않을 때 사용. (리스트는 '순차접근')

 

 

백터(Vector)

- 동적 배열 - 객체를 삽입/제거시 자동으로 크기를 조정

- 저장할 데이터의 개수가 가변적일 때 사용

- 데이터가 중간에 삽입/삭제 되는 경우가 없을 때 사용

- 순차 저장이므로 검색속도가 느리다

- 데이터 임의 접근에 용이 (위치만 알면 바로 접근 가능)

 

메서드 종류 - push_back()

 

덱(deque)

- 데이터를 앞이나 뒤에서 삽입/삭제 가장 빠름

- 저장할 데이터 개수가 가변적일 때 사용

- 검색을 하지 않는다

- 데이터 임의 접근에 용이 (위치만 알면 바로 접근 가능)

 

 


 

 

Association Container 연관 컨테이너

 

맵(Map)

- key와 value 쌍으로 이루ㅇ져 pair 객체 형태로 저장

- 많은 데이터를 정렬할 때 사용

- 검색 속도가 빠름

- 데이터의 삽입과 삭제가 자주 일어나는 경우 사용하지 않는다

- 맵은 자동으로 key를 기준으로 정렬(오름차순), 때문에 정렬이 필요하지 않은 경우는 hash map을 사용한다.

- 키 값이 유일하다

 

 

메서드 : M.insert({1,"item1"}

	map<int, string>::iterator iter;

	for (iter = M.begin(); iter != M.end(); ++iter)
	{
		cout << "Number : " << (*iter).first << "  Name : " << (*iter).second << endl;
	}
    
    // 맵을 이용한  iterator 구현

 

 

셋(Set)

- key만 저장한다

- 정렬이 필요할 때 사용

- key의 존재 유무를 알고 싶을 때 사용

- 많은 자료를 저장 + 검색 속도가 빠르다

- 중복키는 사용 불가

저작자표시 비영리 (새창열림)

'알고리즘 이론' 카테고리의 다른 글

[순열] 순열 구현하기 C++  (0) 2022.03.06
[알고리즘 이론] Floyd Warshall 플로이드 와샬 알고리즘 C++  (0) 2022.02.22
[이론] 이진탐색 (Binary Search) - c++  (2) 2022.02.09
[알고리즘 이론] 정렬 알고리즘  (2) 2021.06.21
[알고리즘 이론] 시간 복잡도  (1) 2021.06.21
'알고리즘 이론' 카테고리의 다른 글
  • [알고리즘 이론] Floyd Warshall 플로이드 와샬 알고리즘 C++
  • [이론] 이진탐색 (Binary Search) - c++
  • [알고리즘 이론] 정렬 알고리즘
  • [알고리즘 이론] 시간 복잡도
senyalog
senyalog
개발 블로그 https://github.com/iamyunjuda
  • senyalog
    Senya의 개발 블로그
    senyalog
  • 전체
    오늘
    어제
    • 분류 전체보기 (71)
      • 일상 (6)
      • 알고리즘 이론 (14)
        • 백준 (8)
      • 개발 (31)
        • Server (8)
        • 인턴 (2)
        • Javascript (0)
      • 경제 (7)
  • 블로그 메뉴

    • Github
    • 홈
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    백준문제
    MSA
    카페
    TypeScript
    인턴생활
    알고리즘
    백준
    경제
    깃
    대학생
    서버
    GIT
    백엔드
    대학생인턴
    개발
    공부
    백준풀이
    알고리즘공부
    코딩테스트
    암호화페
    인턴
    이마고웍스
    코딩
    일상
    생각
    개발공부
    개발자
    컴공
    nestjs
    공대생
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
senyalog
STL 컨테이너 별 사용도
상단으로

티스토리툴바