C++ STL(vector) 사용법
·
개발/c++
C++ STL에서 벡터는 배열과 흡사하여 사용 빈도수가 높은 컨테이너중 하나이며 크기가 동적으로 변하는 배열이다. vector 벡터는, 힙 메모리 공간에 생성되는 동적 할당되는 가변배열이다. 기본의 배열보다 효율적인 메모리관리가 가능하다. 벡터의경우 선언해주었던 메모리의 크기가 꽉찼다면 메모리를 증설한다. 벡터의 메모리 할당방식의경우 실제 사용데이터수와 여유분을 포함한 개수로 되어있다. 하지만 메모리가 꽉찰경우 벡터의 메모리의 크기가 1.5배씩 증가하여 메모리크기가 크면클수록 증가하는 메모리가 더욱커진다. 또한 list 와 달리 원소를 추가하는것이아닌 , 1.5배 증가된 배열을 생성한후 기존에 있던 배열에 있는 데이터를 복사를 하면서 늘려간다 계속 크기가 증가하면 복사비용이 들게된다. 이러한 복사비용을 ..
C++ STL 소개
·
개발/c++
STL이란 STL은 표준 C++ 라이브러리의 일부분으로 Standard Templat Library의 약자입니다. STL은 프로그램에 필요한 자료구조와 알고리즘을 템플릿으로 제공하는 라이브러리입니다. 코딩테스트에서 STL을 사용하면 손쉽게 자료구조와 알고리즘 문제를 원활히 풀수있습니다. STL의 구성 요소로는 컨테이터 (Container) 객체를 저장하는 객체로 컬렉션 혹은 자료구조라고도 합니다. 반복자 (Iterator) 포인터와 비슷한 개념으로 컨테이너의 원소를 가리키고, 가리키는 원소에 접근하여 다음원소를 가리키게 하는 기능을 합니다. 알고리즘 (Algorithm) 정렬, 삭제, 검색 연상등을 제공하는 함수 템플릿입니다. 함수객체 (Function Object) 함수처럼 동작하는 객체로 컨테이너와 ..