'Computer Science/C & C++' 카테고리의 글 목록 — Archive

Computer Science/C & C++

Computer Science/C & C++

[C++11] Standard Template Library: <unordered_map> | 표준 템플릿 라이브러리: <unordered_map>

Standard Template Library: 표준 템플릿 라이브러리: unordered_map Properties - 는 아래와 같이 정의할 수 있다: Associative Unordered Map Unique keys Allocator-aware - 메모리 공간을 동적으로 관리하기 위해 allocator 를 사용한다. Summary ( 요약) Template parameters Key T Hash Pred Alloc Member Types key_type mapped_type value_type hasher key_equal allocater_type reference const_reference pointer const_pointer iterator const_iterator local_itera..

Computer Science/C & C++

[C++11] Standard Template Library: <vector> | 표준 템플릿 라이브러리: <vector>

Standard Template Library: 표준 템플릿 라이브러리: - C++98에서 처음으로 고안된 STL로 제공하는 동적 배열을 관리할 때 사용하는 컨테이너이다. - Homogeneous Container를 제공한다. - Built-In Array 와 동일하게, 표준 배열 표기법을 사용할 수 있다. - Built-In Array Type과 Template은 원소들을 동일한 메모리 지역에 저장시키는데 반해, 는 원소들을 Heap에 저장시킨다. - 내부적으로 는 동적으로 할당된 Built-In Array를 사용하여 원소들을 저장하는데, capacity를 넘어서서 원소들을 저장하기 위해서는 새로운 배열 공간을 할당하며 Overhead가 발생되기에, 원소가 추가된다 하더라도 그때마다 배열 공간을 재할당..

Computer Science/C & C++

[C] qsort() Function | qsort() 함수

qsort() Function qsort() 함수 - 헤더파일에 정의된 qsort() 함수에 대해 설명한다. - qsort() 함수는 데이터를 정렬하는 함수이다. * Linux manual page - qsort(3p) (URL) qsort(3p) - Linux manual page qsort(3p) — Linux manual page QSORT(3P) POSIX Programmer's Manual QSORT(3P) PROLOG top This manual page is part of the POSIX Programmer's Manual. The Linux implementation of this interface may differ (consult the corresponding Linux manual..

Computer Science/C & C++

[C++] Fast I/O | 빠른 입출력

Fast Input/Output 빠른 입출력 - C/C++에서 많은 I/O(입출력)이 발생하는 경우에 실행시간을 유의미하게 줄일 수 있는 방법이다. - 주요 언어군에서의 입력 방법에 따른 실행시간 순위는 아래와 같다. (URL) (천만 개의 10,000 이하 자연수가 적힌 파일을 입력받기를 10회 실시하여 소요시간의 평균을 측정하여 순위를 산정) 순위 언어 입력 방법 평균 (sec) 1 C11 mmap 0.043 2 C11 fread 0.0799 3 C11 getchar 0.3496 4 C++17 ios_base::sync_with_stdio(false); cin.tie(NULL); 0.5938 5 C++17 ios_base::sync_with_stdio(false); 0.6348 6 Java Buffe..

Computer Science/C & C++

[C++] STL | 표준 템플릿 라이브러리

STL (Standard Template Library) 표준 템플릿 라이브러리 - STL에서는 Homogeneous Container, Iterator, Function Object, Algorithm 기능을 제공하는 Template들을 제공한다. - STL은 Generic Programming 패러다임을 따르는 개념이다. * \(\texttt{vector}\) Template Class (URL) Reference: C++ Primer Plus 6E (Stephen Prata 저, Pearson, 2012)

Computer Science/C & C++

[C++] Smart Pointer Template Class | 스마트 포인터 템플릿 클래스

Smart Pointer Template Class 스마트 포인터 템플릿 클래스 - Smart Pointer는 포인터에 몇 가지 기능이 추가된 클래스 객체를 의미한다. - 특히, 동적으로 메모리를 할당받은 포인터가 수명을 다했을 때, 자동으로 메모리를 반납해주는 기능을 지원한다. (이런 이유로, 스마트 포인터 객체는 Heap 공간 이외의 메모리를 가리키는 포인터를 받아들일 수 없다.) - 스마트 포인터 클래스는 memory 헤더 파일에 정의되어 있다. - 스마트 포인터 클래스 이름은 std 이름 공간에 포함되어 있다. - 스마트 포인터는 아래와 같이 3개의 스마트 템플릿으로 구성된다: auto_ptr unique_ptr shared_ptr - 위 스마트 포인터 모두 내부적으로 new를 통해 주소를 얻고,..

Computer Science/C & C++

[C++] string Class | string 클래스

string Class string 클래스 ※ C/C++에서는 크게 두 가지 문자열 처리 패러다임이 있다. 1. C-Style Strings - cstring (string.h) 헤더파일에 C-Style 문자열 처리 함수들이 정의되어 있다. - C언어에서 익히 사용했던 strcmp(), strcpy() 함수 등이 C-Style 문자열 처리 함수에 해당된다. 2. string Class - string 헤더파일에 string 클래스의 Specification이 정의되어 있다. - 문자열 대입/결합/비교, 개별 문자에 대한 접근, 문자열을 구성하는 문자나 부분 문자열에 대한 검색 등을 지원하는 연산자가 오버로딩 되어있고, 여러 가지 Constructor들과 메서드들이 정의되어 있다. - string 객체는 ..

Computer Science/C & C++

[C++] Type Cast Operator | 데이터형 변환 연산자

Type Cast Operator 데이터형 변환 연산자 - dynamic_cast - const_cast - static_cast - reinterpret_cast - 일반적인 데이터형 변환 메커니즘보다 더 안전하고, 더 쉽게 상황을 파악할 수 있게하는 데이터 형 변환 메커니즘을 제공하는 연산자들이다. - 일반적인 명시적 형변환 대신, 위와 같은 데이터형 변환 연산자를 통해 프로그래머가 원하는 바를 철저히 검사하면서 형변환을 수행하는 것이 바람직하다. - 특정 목적에 맞는 데이터형 변환 연산자를 이용함으로써 데이터형 변환의 이유를 재고하고, 컴파일러에게 형변환 내용을 검사할 기회를 제공한다. dynamic_cast 연산자 dynamic_cast (expression) // expression을 type-..

lww7438
'Computer Science/C & C++' 카테고리의 글 목록