목록Programming/STL (14)
Nagie's DevStory
std::forward_list는 C++ 표준 라이브러리(STL)에서 제공하는 가변 크기의 단순 연결 리스트 컨테이너다. C++ 11 표준부터 사용할 수 있고 헤더에 정의되어 있다. 특징 1. 단일 연결 리스트 : std::list와는 다르게 다음 요소를 가리키는 포인터만 가지며, 이전 요소를 가리키는 포인터는 없다. 이에 따라 std::list보다 메모리 사용량이 적다. 2. 데이터 삽입 및 삭제 효율성 : 데이터 삽입 및 삭제 작업이 매우 효율적이다. 이전 요소를 찾아가는 작업이 없기 때문에 std::list보다 일반적으로 더 빠르다. 3. 검색 시간복잡도 : 요소를 검색할 때 O(n) 시간 복잡도를 가진다. std::list와 마찬가지로 검색이 비효율적이다. 데이터의 삽입 및 삭제가 빈번한 상황에서..
std::list는 C++ 표준 라이브러리(STL)에서 제공하는 가변 크기의 양방향 연결 리스트 컨테이너다. C++ 11 표준부터 사용할 수 있고 헤더에 정의되어 있다. 특징 1. 데이터 저장 구조 : 각 요소가 데이터와 이전 요소 및 다음 요소에 대한 포인터를 가지고 있는 이중 연결 리스트다. 이로써 데이터 삽입 및 삭제 작업이 O(1) 시간 복잡도를 가진다. 2. 반복자 : std::list는 반복자를 통해 요소에 접근한다. 순회 및 요소 조작에 반복자를 사용할 수 있다. 3. 삽입 및 삭제 : 요소를 양쪽 끝에 삽입하거나 삭제하는 작업이 매우 효율적이다. 중간에 요소를 삽입하거나 삭제하는 경우에도 효율적이다. 4. 검색 시간 복잡도 : 요소를 검색할 때 O(n) 시간 복잡도를 가지며 std::lis..
std::vector는 C++ 표준 라이브러리(STL)에서 제공하는 가변 크기 컨테이너다. C++ 11 표준부터 사용할 수 있고 헤더에 정의되어 있다. 특징 1. 동적 크기 조절 : 벡터는 동적으로 크기를 조절할 수 있다. 초기 크기를 정의한 후에도 요소를 추가하거나 삭제할 수 있어 메모리의 효율적인 사용과 크기 조절이 필요한 상황에 유리하다. 2. 빠른 임의 접근 : 벡터는 근본적으로 동적 메모리기 때문에 배열처럼 인덱스를 사용하여 빠르게 접근할 수 있다. 마찬가지로 인덱스를 알고 있다면 해당 요소에 접근하는 시간은 O(1)이다. 3. 메모리 관리 : 벡터는 요소를 메모리에서 연속적으로 저장하므로 메모리의 효율적인 사용이 가능하다. 4. std::vector의 크기 및 용량 : 벡터는 현재 크기(Siz..