본문 바로가기

c++

(6)
초보자를 위한 STL deque 정리 1)deque란 무엇인가? 1-1.deque가 만족해야 하는 조건 c++ 표준은 덱의 동작에 있어서 다음 조건을 만족해야 한다고 규정하고 있습니다. push_front(), pop_front(), push_back(), pop_back() 동작이 O(1)의 시간 복잡도로 동작할 것 모든 원소에 대한 임의 접근 동작이 O(1)의 시간 복잡도로 동작할 것 덱 중간에서 원소 삽입 또는 삭제는 O(n) 시간 복잡도로 동작할 것(실제로는 최대 n/2 단계로 동작) 이러한 요구 사항을 통해 덱은 양방향으로 매우 빠르게 확장하면서, 모든 원소에 임의 접근을 제공하는 STL 이라는 사실을 알 수 있습니다. 즉 자료 구조가 벡터와 비슷하지만, 앞쪽과 뒤쪽으로 모두 확장 할 수 있다는 점이 다르다는 것을 알 수 있습니다...
초보자를 위한 STL list 정리 1)list란 무엇인가 1-1.list의 존재 이유 초보자를 위한 C++ STL forward_list 정리 1)forward_list 사용 이유 앞서 살펴본 STL array, vector같은 연속된 자료 구조에서는 데이터 중간에 자료를 추가하거나 삭제하는 작업이 비효율적입니다. 따라서 C++는 자료 추가, 삭제 작업을 효율적으 khjtoy.tistory.com 앞서 설명한 forward_list는 아주 기본적인 형태로 구성된 단일 연결 리스트이기 때문에 리스트 끝에 원소 추가, 역방향 이동, 리스트 크기 반환 등의 기능은 제공하지 않습니다. 이는 메모리를 적게 쓰고 빠른 성능을 유지하기 위함입니다. 그러므로 forward_list는 빠른 원소 삽입이 필요한 모든 경우에 어울리는 컨테이너는 아닙니다. ..
초보자를 위한 c++ STL 반복자(iterator) 정리 1)반복자란 무엇인가 앞서 array, vector, forward_list를 설명할 때 반복자(iterator)를 사용한 것을 기억하실 것입니다. 초보자를 위한 c++ STL array 정리 목차 ·array 사용 이유 ·array 사용 방법 ·array 초기화 ·array 객체를 다른 함수에 전달 ·array 원소 접근 ·원소 접근 함수 ·swap 함수 ·array의 대입 복사 ·array의 비교 연산 1)array 사용 이유 int arr[Size]; khjtoy.tistory.com 초보자를 위한 c++ STL vector 정리 1)vector 사용 이유 앞서 알아본 array의 C 스타일 배열의 향상된 버전입니다. https://khjtoy.tistory.com/2 초보자를 위한 c++ STL ..
초보자를 위한 C++ STL forward_list 정리 1)forward_list 사용 이유 앞서 살펴본 STL array, vector같은 연속된 자료 구조에서는 데이터 중간에 자료를 추가하거나 삭제하는 작업이 비효율적입니다. 따라서 C++는 자료 추가, 삭제 작업을 효율적으로 할 수 있는 연결 리스트의 기본 형태인 forward_list 클래스를 제공합니다 2)forward_list 사용 방법 forward_list는 전체 리스트 크기를 반환하거나 또는 첫 번째 원소를 제외한 나머지 원소에 직접 접근하는 기능은 제공하지 않습니다. 즉, front() 함수는 있지만 back() 함수는 없습니다. 2-1.forward_list 초기화 #include #include using namespace std; int main() { //크기가 0인 forward_l..
초보자를 위한 c++ STL vector 정리 1)vector 사용 이유 앞서 알아본 array의 C 스타일 배열의 향상된 버전입니다. https://khjtoy.tistory.com/2 초보자를 위한 c++ STL array 정리 목차 ·array 사용 이유 ·array 사용 방법 ·array 초기화 ·array 객체를 다른 함수에 전달 ·array 원소 접근 ·원소 접근 함수 ·swap 함수 ·array의 대입 복사 ·array의 비교 연산 1)array 사용 이유 int arr[Size]; khjtoy.tistory.com 만약 array의 대해 잘 모른다면 위 내용을 한번 읽어보고 오시기를 바랍니다. 다만 array의 주요 단점 때문에 실제 응용 프로그램 개발에서 유용하게 사용하기 힘듭니다. array 단점 1.array의 크기는 컴파일 시간..
초보자를 위한 c++ STL array 정리 목차 ·array 사용 이유 ·array 사용 방법 ·array 초기화 ·array 객체를 다른 함수에 전달 ·array 원소 접근 ·원소 접근 함수 ·swap 함수 ·array의 대입 복사 ·array의 비교 연산 1)array 사용 이유 int arr[Size]; //정적 배열 int* arr = (int*)malloc(Size * sizeof(int)); //동적 배열 위 코드는 C언어부터 도입되었기 때문에 C 스타일 배열이라고 합니다. 이러한 배열은 C++에서 배열의 역할을 충분히 할 수 있지만 몇 가지 단점 때문에 더 나은 형태의 배열이 필요하기도 합니다. C 스타일 배열의 단점 1.메모리 할당과 해제를 수동으로 처리해야 합니다. 2.자료의 삽입과 삭제에 비효율적입니다. 3.깊은 복사를 수동으로..