본문 바로가기

[ C/ C++ 프로그래밍 ]/[ STL ]

[ 혼연 정리 ] STL 개요 - 4 [알고리즘] ㅇ 알고리즘 STL의 알고리즘 함수들은 전역함수로 작성되어 있다. STL은 일반화된 알고리즘을 제공하므로 캡슐화를 적극적으로 사용하지 않는다. 컨테이너 클래스들은 표현하고자 하는 구조를 위한 데이터 멤버와 연산자만 정의하며 알고리즘 구현은 반복자와 전역 함수에 맡긴다. 알고리즘 함수들은 대부분 algorithm 헤더 파일에 정의되어 있다. ==> 시간이 나면 한번 봐두자 - find 함수 가장 흔하게 사용된다. 원형은 다음과 같다. template InIt find(InIt first, InIt last, const T& val); InIt : 반복자 const T& val : 탬플릿 임의의 모든 타입에 대해 동작할 수 있어야 하므로 STL 알고리즘 함수들은 예외 없이 탬플릿으로 구성 C 함수들은 검색에.. 더보기
[ 혼연 정리 ] STL 개요 - 3 [ 반복자] ㅇ 반복자 STL의 가장 핵심적인 요소 ==> 반복자 포인터와 하는 역할이나 사용방법이 비슷하되 훨씬 더 일반화되어 있어 임의의 컨테이너와 함께 사용가능 STL의 일반성은 반복자를 통해 확보된다. 배열과 연결 리스트는 논리적으로 유사한 컨테이너이나 물리적인 자료 구조가 틀리므로 순회하는 방법이 다르다. 순회 방법을 일반화 하기 위해 STL에서 사용하는 개념이 반복자이다. 어떤 경우는 포인터가 되고, 어떤 경우는 첨자가 되고 어떤 경우는 복잡한 객체가 요구되기도 한다. 반복자는 다음과 같은 기능을 지닌다.(종류에 따라 일부 제외되기도 함) ① 컨테이너의 요소 하나를 가리키는 기본적인 역할 ② 가리키는 지점의 요소를 읽고 쓸 수 있다. 내용을 읽는 * 연산자가 정의. ③ 증감에 의해 주변 요소로 이동할 수 .. 더보기
[ 혼연 정리 ] STL 개요 - 2 [ STL의 구조, 컨터이너 ] ㅇ STL의 구조 컨테이너 , 알고리즘, 반복자 : 중요한 요소 함수 객체 : 알고리즘의 활용성을 높이는 역할 어뎁터 : 다른 요소들을 약간만 수정하여 형태를 변경 할당기 : 컨테이너의 메모리를 관리하는 객체, 디폴트값이 선언되어 있음 - 컨테이너 (Container) 통, 그릇 : 무엇인가를 저장하는 것, 다른말로 컬렉션(Collection) 이라고 함 , 컨테이너는 3가지로 분류 된다. ① 시퀸스 컨테이너 (Sequence Container) 자료의 선형적인 집합, 삽입되는 자료는 무조건 저장, 입력되는 자료에 특별한 제약이나 관리 규칙 없음 벡터, 리스트, 데크가 제공된다. ② 연관 컨테이너(Associative Container) 일정한 규칙에 따라 자료를 조직화하여 관리, 정렬이나 해시 등의 방.. 더보기
[ 혼연 정리 ] STL 개요 - 1 ◎ STL 소개 ㅇ 자료구조와 알고리즘 자료구조: 처리하고자 하는 데이터를 표현하는 방법 알고리즘 : 이 자료들을 가공하여 유용한 정보를 생산하는 기법 ㅇ일반화 일반화(Generic)는 객체 지향의 다음 세대라고 일컬어진다. 1. 임의 타입에 사용할 수 있는 자료 구조를 만들 수 있다. ex) C++의 템플릿 문법 2. 자료 구조의 형태나 구조에 상관없이 임의의 데이터 집합에 적용할 수 있는 일반화된 알고리즘을 제공 ※ 일반화의 개념에 의해 자주 사용되는 자료 구조와 제공하는 알고리즘을 라이브러리가 STL 이다. ㅇ STL (Stand Template Library) 이란? - 템플릿의 집합을 제공하는 라이브러리 - 장점 ① 일반화를 지원 : 하나의 단일 알고리즘으로 복수 개의 컨테이너에 동일한 작업을 .. 더보기