클래스 템플릿
스택클래스템플릿의 생성자에서 매개변수로전달되는 클래스의 객체를 저장할수있는 배열공간을 동적으로 할당할텐데
그때 디폴트 생성자가 필요할텐데 디폴트생성자를 만들지 않아서 에러가 난다.
Stack<T>의 생성자의 구현부에서 new T[s]; 에서 Person에 디폴트생성자가 필요함
주의 -컴파일할때 값을 알수있게 매개변수를 넣어줘야한다!!
함수템플릿
굳이 T라고 안쓰고 ANY라고 씀
표준템플릿 라이브러리(STL)
순차컨테이너(선형적인 구조)
-벡터 : 크기확장이 가능, 끝에 삽입하는것은 빠르나 중간에 삽입하는것은 느림
-리스트 : 이중연결리스트 (중간삽입이 효율적임)
-데크 : 벡터와 리스트의 혼합형태임
연상 컨테이너
탐색트리와 같은 인덱스구조를 이용하는 컨테이너
키를 이용한 효율적인 검색기능을 제공
-set : 키 객체만 저장 ,키가 중복되지않음
-multiset : 키객체만저장, 같은 키가 중복될 수 있음
-map : 키-값 쌍 저장, 키가중복되지않음
-multimap : 키-값쌍 저장, 키가 중복됨.
무순서 연상 컨테이너
-unodered_로시작함
-키를 이용한 검색, 해시함수를 이용해서 계산으로 데이터가 어딨는지 알아냄
컨테이너 어뎁터
반복자(iterator)
알고리즘
벡터의 논리적 크기(데이터가 있는 공간) :size()
벡터의 실제로 확보된 메모리크기 : capacity();
push_back() :맨뒤에 넣음
pop_back() : 맨뒤값 꺼냄
insert() , erase() 에 따라 size()가 증감
capacity의 값은 데이터 추가로 인해 확보된 메모리가 부족할때 확장시킬때 증가함.. 즉 감소는 안함
벡터의 반복자
vector<int>::iterator it은 auto it으로 교체할 수 있다.
*it 는 포인터의 값을 읽어내듯이 반복자의 값을 읽어낸다.
'수업 > C++' 카테고리의 다른 글
12강 추상클래스, 상세클래스 (0) | 2024.11.28 |
---|---|
11. 상속- 가상함수(virtual),업캐스팅,다운캐스팅 (1) | 2024.11.28 |
10상속 - 생성자와 소멸자, 가시성지시어 (0) | 2024.11.26 |
연산자다중정의- 이동대입연산자 , std::move, 형변환연산자 (0) | 2024.11.26 |
8,9연산자 다중정의 (0) | 2024.11.25 |