Mais conteúdo relacionado
Semelhante a [C++adv] STL 사용법과 주의 사항 (14)
Mais de MinGeun Park (20)
[C++adv] STL 사용법과 주의 사항
- 6. 중복된 코드는 문제를 야기 한다.
오버 로딩이 해결 방법이 아니다.
Double? UINT? Long?? 이 추가 되면?
- 11. STL List
특징
1.고정 길이인 배열에 비해 길이가 가변적이다.
2.중간에 데이터 삽입, 삭제가 용이하다.
사용하는 경우
1. 저장할 데이터 개수가 가변적이다.
2. 중간에 데이터 삽입 삭제가 자주 일어난다.
- 12. STL List - 문제점
1. 객체는 삭제되지 않는다. (STL 컨테이너 공통)
2. 캐릭터에 ID가 있는 이유가 무엇인가?
- 13. STL List – 주의할 점
1.순차적인 접근에서?
2.리스트에 해당 데이터가 존재하는지 어떻게 확인할까?
- 14. STL List 주의점
1. 검색을 자주 하는 데이터에 맞지 않다. (=> map)
2. 인덱스를 이용해서 데이터를 랜덤하게 접근하는
경우에는 느리다 (=> vector)
- 15. STL Vector
STL 에서 제공 하는 가변 배열
특징
1.저장할 데이터 개수가 가변적이다.
2.임의의 데이터에 바로 접근할 수 있다.
3.중간에 삽입/삭제가 용이하지 않다. (느리다)
- 17. STL Vector
유용한 경우
1.저장할 데이터 개수가 가변적이다.
2.중간에 데이터 삽입/삭제가 없다.
3.저장할 데이터 개수가 적거나, 검색이 잦지 않다.
4.데이터 접근을 랜덤하게 하고 싶다. (인덱스)
- 20. STL Vector – Capacity
Capacity
벡터가 담을 수 있는 용량.
Capacity를 넘어 간다면??
- 21. STL Vector – Capacity
1
2
3
4
Capacity : 4
5
1
2
3
4
Capacity : 8
새로운 공간을 할당한다
새로운 공간에 값을 복사한다
- 24. STL vector 주의점
1. 중간에 데이터의 삽입/삭제가 잦은 경우에는 맞지 않다. (=> list)
2. 처음에 데이터를 세팅할 때 reserve()를 활용한다.
- 26. STL map
유용한 경우
1.많은 자료에서 키값을 통한 빠른 검색이 주요 목적이다
2.정렬해야 한다.
3.빈번하게 삽입/삭제하지 않는다.
Q. Map과 List에서 무엇이 삭제가 더 빠를까?
- 32. STL Set
특징
1.키값만 있는 컨테이너
2.중복된 키값이 들어갈 수 없다.
3.키값이 존재하는지 검색할 때 사용 한다.
4.정렬해야 할 때.
5.많은 자료를 저장하고, 검색 속도가 빨라야 할 때