Template(탬플릿) 이란
함수나 클래스를 여러 자료형으로 사용할 수 있도록 하게 만들어 놓은 틀
이런 정의 만을 보았을 때 C++ auto 와 비슷한 적절한 자료형을 찾아 주는 것 같았지만
Template은 auto와 같이 읽을 때는 타입이 정해지지 않은 것처럼 보여질 수 있지만
auto) - 초기화 값에 따라 타입을 추론하여 정해짐
- 매개변수로 사용 시 자료형의 크기를 구할 수 없기 때문에 오류남
Template) - 어떠한 자료형이든 사용할 수 있는 것 (변환이 되는 것이 아닌 원하는 하나로 설정해서 사용하는 것)
- 매개변수로 사용가능
Vector
| vector<자료형> 변수명 | 백터 생성 |
| vector<자료형> 변수명(숫자) | 숫자만큼 백터 생성 후 0으로 초기화 |
| vector<자료형> 변수명 = { 변수1, 변수2, 변수3... } | 백터 생성 후 오른쪽 변수 값으로 초기화 |
| vector<자료형> 변수명[] = {, } | 백터 배열(2차원 백터)선언 및 초기화(열은 고정, 행은 가변) |
| vector<vector<자료형>> 변수명 | 2차원 백터 생성(열과 행 모두 가변) |
| vector<자료형>변수명.assign(범위, 초기화할 값) | 백터의 범위 내에서 해당 값으로 초기화 |
assign(a,b)에 대하여 추가 검색을 해보았더니
a,b의 값이 자료형/포인터에 따라 b로 a만큼 채운다/a부터b까지의 데이터를 가져온다 로 나뉘는 것 같습니다
(기존 데이터는 삭제)
| v.empty() | 백터가 빈공간이면 true, 값이 있다면 false |
| v.size() | 백터의 크기 반환 |
| v.push_back() | 백터의 마지막 부분에 새로운 요소 추가 |
| v.pop_back() | 백터의 마지막 부분 제거 |
| v.insert(삽입할 위치의 주소 값, 변수 값) | 사용자가 원하는 위치에 요소 삽입 |
| v.emplace(삽입할 위치의 주소 값, 변수 값) | 사용자가 원하는 위치에 요소 삽입(move로 인해 복사생성자 X) |
| v.emplace_back() | 백터의 마지막 부분에 새로운 요소 추가(move로 인해 복사생성자 X) |
| v.erase(삭제할 위치) or v.erase(시작위치, 끝위치) | 사용자가 원하는 index값의 요소를 지운다. |
| v.clear() | 백터의 모든 요소를 지운다.(return size = 0) |
| v.at(i) | 백터의 i번째 요소 접근 (범위 검사함) |
| v.[i] (operator []) | 백터의 i번째 요소 접근 (범위 검사 안함) |
| v.front() | 백터의 첫번째 요소 접근 |
| v.back() | 백터의 마지막 요소 접근 |
.at 는 잘 사용하지 않는다고 합니다
map
초기화
| map<자료형, 자료형> 변수 | 기본적인 선언방법 |
| map<자료형, 자료형> 변수(같은 자료형의 변수) | map 복사 |
| 변수[Key] = 변수 | = 대입 연산 |
반복자
| s.begin() | map의 시작이 되는 주소 값 반환 |
| s.end() | map의 마지막 부분에 대한 주소 값 반환(정확히는 마지막 뒤 공백구간) |
| s.rbegin() | map의 마지막 부분을 시작점으로 지정 |
| s.rend() | map의 첫번 째 부분을 마지막점으로 지정 |
| s.cbegin() | begin()과 동일하지만 const로 설정. |
| s.cend() | end()와 동일하지만 const로 설정 |
| s.crbegin() | rbegin()과 동일하지만 const로 설정 |
| s.crend() | rend()와 동일하지만 const로 설정 |
| empty() | 비어있다면 true, 아니면 false |
| size() | 저장되어 있는 크기 |
| max_size() | 가질 수 있는 최대 크기 |
| m.insert() | m에 값 삽입 |
| m.erase() | m에 저장된 요소 삭제 |
| m1.swap() | m1과 m2를 서로 교환 |
| m.clear() | m의 요소들 전부 삭제 |
| find() | key값에 위치를 찾은 후 반환 |
| count() | 해당 key값에 있는 변수 갯수를 반환 (있다면 무조건 1 반환) |
'C++' 카테고리의 다른 글
| Overlap 매개변수 (0) | 2025.02.12 |
|---|---|
| STL 반복자(연산) (0) | 2025.01.27 |
| 포인터와 참조 / 스마트 포인터 (0) | 2025.01.20 |
| STL 컨테이너 (0) | 2025.01.14 |
| C++ 함수들 (0) | 2024.12.31 |