목록Programming (115)
Nagie's DevStory
std::deque은 C++ 표준 라이브러리(STL)에서 제공하는 양방향 큐(Double-Ended-Queue)를 구현한 클래스다. 덱은 큐와 스택을 섞어놓은 듯한 동작 방식을 가지고 있으며 양쪽 끝에서 데이터를 추가하거나 제거할 수 있는 자료구조로 std::deque 역시 동일한 동작을 하며 다음은 std::deque의 주요 특징과 사용법이다. 특징 1. 표준 라이브러리의 일부 : std::deque는 C++ STL의 일부이며 헤더에 정의되어 있다. 2. 양방향 큐 : std::deque는 큐와 스택의 두 가지 동작을 모두 제공하며 양쪽 끝에서 데이터를 추가하거나 제거할 수 있어 양방향 데이터 접근을 제공한다. 3. 동적 배열 구조 : std::deque는 동적 배열 구조로 구현되어 있어 큐의 크기를 ..
std::queue는 C++ 표준 라이브러리(STL)에서 제공하는 큐(Queue) 자료구조를 구현한 클래스다. 큐는 선입선출(FIFO, First-In-First-Out) 방식으로 데이터를 관리하는 자료구조로, std::queue 역시 이러한 동작을 한다. 다음은 std::queue의 주요 특징과 사용법이다. 특징 1. 표준 라이브러리의 일부 : std::queue는 C++ STL의 일부이며 헤더에 정의되어 있다. 2. 큐의 기능 제공 : std::queue는 큐 자료구조의 기능을 제공한다. 즉 데이터를 큐에 추가하는(push) 동작과 큐에서 데이터를 제거하는(pop) 동작을 지원한다. 3. 컨테이너 어댑터 : std::queue는 다른 시퀀스 컨테이너를 내부적으로 사용해 큐를 구현한다. 따라서 큐의 특..
std::stack은 C++ 표준 라이브러리(STL)에서 제공하는 스택 자료구조를 구현한 클래스다. 스택은 후입선출 (LIFO, Last-In-First-Out) 방식으로 데이터를 관리하는 자료구조로 std::stack 역시 이러한 동작을 한다. 다음은 std::stack의 주요 특징과 사용법이다. 특징 1. 표준 라이브러리의 일부 : std::stack은 C++ STL의 일부이며 헤더에 정의되어 있다. 2. 스택의 기능 제공 : std::stack은 스택 자료구조의 기능을 제공한다. 즉 데이터를 스택에 넣는(push) 동작과 스택에서 데이터를 빼내는(pop) 동작을 지원한다. 3. 컨테이너 어댑터 : std::stack은 다른 시퀀스 컨테이너를 내부적으로 사용해 스택을 구현한다. 따라서 스택의 특성을 ..
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..