벡터(vector)
c++ 표준라이브러리에 있는 컨테이너
동적배열로서 기존 배열과는 다르게 크기 지정을 하지않아도 사용가능하다. 또한 메모리를 효율적으로 관리한다.
"#include<vector>" 헤더파일을 추가
"vector<자료형>변수명" 으로 선언
"변수명.begin()"으로 시작점 주소를 반환 <-> "변수명.rbegin()" 끝나는 지점을 시작점으로 반환
"변수명.end()"으로 끝나는지점+1 주소를 반환 <-> "변수명.rend()" 시작점+1 을 끝나는지점으로 반환
"변수명.front()" 첫번째 요소 반환
"변수명.back()" 마지막 요소 반환
"변수명.erase(인덱스)" 인덱스의 값을 삭제한다
큐(queue)
선입선출 자료구조인 큐를 직접구현하지 않고 사용할 수 있다.
"#include<queue>" 헤더파일을 추가
"queue<자료형>변수명" 으로 선언
"변수명.push(값)" 큐에 값을 삽입
"변수명.pop(값)" 큐에 값중 가장 먼저 들어간 값을 삭제한다.
"변수명.front()" 첫번째 요소 반환
"변수명.back()" 마지막 요소 반환
셋(set)
저장되는 원소들이 자동으로 오름차순으로 정렬되는 컨테이너로서 조건을 주면 내림차순으로도 정렬할 수 있다.
셋은 유일한 원소를 가지며, 균형이진트리 (높이균형이 맞춰진 이진트리) 로 구현된다. (탐색에 유용하다)
multiset은 set과는 다르게중복을 허용한다.
"#include<set>" 헤더파일을 추가
"set<자료형>변수명" 으로 선언
"변수명.insert(값)" set에 값을 삽입
"변수명.erase(인덱스)" 인덱스의 값을 삭제한다
"auto 변수명 = set변수명.find(값)" 을 사용하면 원하는 값이 존재하는지 여부를 알 수 있다. 값이 존재할 경우 해당 값을 반환하고, 없을경우에는 반환하지 않는다.
auto 는 c++에서 사용되는 데이터 타입추론으로 알아서 데이터 타입을 지정해준다.
맵(map) *유용하다*
key와 value가 쌍으로 저장되는 컨테이너로서 균형이진트리로 구현된다.
set과 유사하게 중복값을 허용하지 않으며, 자동으로 key를 기준으로 오름차순 정렬한다.
(내림차순도 greater을 사용하여 가능)
빠른검색에 유용하며, 크기가 가변적이다.
"#include<map>" 헤더파일을 추가
"map<자료형,자료형>변수명" 으로선언
"변수명.insert(값)" map에 값을 삽입
"변수명.erase(key)" 특정 key를 삭제한다
이외에도 find(), begin(), end() empty() 등을 사용가능 하다.
'Programming > C++' 카테고리의 다른 글
c++ 유용한 함수 정리 (0) | 2022.01.24 |
---|---|
열혈c++ Chapter01 프로젝트 1단계 정답 (윤성우의 열혈c++ Chapter01 ) (0) | 2021.08.15 |
c++ call-by-reference , 열혈c++ Chapter2 문제1, 문제3, 문제02-2 (0) | 2021.08.15 |
열혈 c++ Chapter02 문제02-3 , 02-4 문제1 , 문제2, Chapter03 예제 (참조자,상수값) (0) | 2021.08.15 |
c++ namespace 활용 및 구조체 내의 함수 예시 , 열혈c++ Chapter 03 문제 03-1 (0) | 2021.08.15 |