본문 바로가기

STL3

[STL] vector, deque, list - 배열과 동일하게 연속적인 메모리 공간에 저장한다. 하여 원소들간의 포인터 연산이 가능하다.- 개별 원소들에 대해서 iterator 접근 외에도 position index를 통하여 접근이 가능하다.- 어떠한 순서로도 원소 순회가 가능하다. random access iterating이 가능하다.- 동적으로 할당이 가능한 dynamic array로 구현되어 있다.- 원소 끝부분에 삽입/삭제는 빠르나, 그 외 부분에서의 삽입/삭제는 deque, list에 비해 현저히 느리다.- 동적으로 컨테이너의 크기가 확장/축소가 가능하나, 확장시 전체 메모리 크기만큼 reallocating이 발생함으로 비용이 크다.- capacity를 확장시켜줄 수 있도록 적절한 크기의 reserve로 인한 메모리 확보가 중요하다. -.. 2014. 9. 22.
[STL] vector에서 size(), reserve() 함수의 역할 - size() 함수는 전달된 인자만큼의 요소 갯수를 늘리고 초기화(생성)한다. - reserve() 함수는 전달된 인자가 들어갈 만큼의 메모리를 예약(할당)할 뿐 요소를 추가하지는 않는다. 2013. 12. 11.
STL이란? (1) STL : Standard Template Library의 약자. 일반적으로 많이 사용될 수 있는 자료구조와 알고리즘 모음 라이브러리. 템플릿으로 만들어져 있으며, 이해하기 위해서는 C++의 템플릿을 이해해야할 필요가 있다. STL은 Generic Programming으로 만들어진 대표적인 예이다. Generic이란 총칭한다는 뜻으로 C++에서는 변수의 타입을 총칭한다. - 템플릿을 이용하면 총칭화된 타입을 사용하는 클래스와 함수를 만들 수 있다. - 템플릿을 사용하면 타입에 제약을 받지 않는 로직을 기술 할 수 있다. - Generic Programming을 하기 위해서는 템플릿이 꼭 필요하다. * 참조 : 한빛 네트워크 최흥배님 글 2011. 11. 3.