Set
: 여러 데이터를 효율적으로 관리하기 위한 자료구조 클래스.
Set #include <set>
: 집합. 중복원소가 없는 것이 특징. 삽입 시 자동으로 정렬된다.
Set의 템플릿 <_key, _pr, _Alloc>
- key : 해당 객체의 이름
- pr : 정렬 기준. 내장된 비교형으로는 less<> / greather<> 등이 있다.
- _Alloc : 메모리 할당
Unordered_set #include <unordered_set>
: set과 동일하나 정렬되지 않는다. 대신 검색, 순회가 빠르다.
메소드
- insert: 삽입
Map
: key-value 쌍으로 이루어진 자료구조. [key]를 통해 접근.
Map #include <map>
: 해시함수로 탐색.
multi_map #include <map>
: 중복 키를 허용하는 map구조. 해시함수를 통해 탐색한 뒤 중복 값에 대해 순차탐색을 한다.
메소드
- insert : {key, value} 형태의 pair을 인자로 하여 원소값을 추가한다.
- equal_range(key) : 키에 대한 값의 범위를 pair 쌍으로 반환한다. first가 시작 iterator, second가 마지막 원소값+1의 itorator를 가리킨다.
Vector
: 배열과 리스트의 하이브리드. 원소의 수가 2^n을 넘어갈 때마다 새 배열을 만들어 이동시킨다.
메소드
- push_back() / emplace_back() : 새 원소를 뒤에 삽입. 클래스 객체의 경우 emplace_back이 중복 생성을 방지하여 더 빠르다.
// push_back() > 삽입할 객체를 직접 매개변수로 전달.
// emplace_back() > 삽입할 객체의 매개변수를 매개변수로 전달.
//
// ex) class Item{ Item(int i ) }; vector<Item> a;
// a.push_back(Item(1)); //생성자를 호출하여 객체 생성 후, 해당 객체를 전달.
// a.emplace_back(1); //생성자 호출에 필요한 매개변수를 전달하여 a객체 내에서 Item 객체 생성.
String
: ---
메소드
- insert(index, str) : 해당 인덱스에 str 삽입. 오른쪽으로 밀린다.
- replace(index, size, str) : index부터 size만큼 str로 대체한다.
- tolower(char) : 해당 문자를 소문자로 변환한다.
- pop_back() : 뒷 문자 제거.
iostream
입력
- getline : string으로 한 줄 전체를 입력받음. // cin 후 getline 명령 시 개행문자가 입력될 수 있다. -> cin.ignore()로 제거
- cin : 공백을 기준으로 입력받음.
- stringstream(string) : 문자열을 문자열 스트림 객체로 변환.
double형 출력 형태
- cout.fixed() : 자릿 수 고정.
- cout.setprecision(n) : 소수점 아래 n자리까지 표기. #include <iomanip>
값 전달 방식
: 8byte 이내의 자료형만 call by value로 동작하며, 보다 클 경우 call by leference로 동작한다.