본문 바로가기
C++

Vector<Template>, Map

by ji-han 2024. 12. 27.

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