본문 바로가기
반응형

프로그래밍 언어/C++27

[C++] 로그(log) 함수 C언어와 달리 C++은 함수 오버로딩이 가능하다. 그렇기에 자료형 상관없이 하나의 함수명으로 처리 가능하다. 필요한 헤더파일 #include 밑이 e 인 로그 함수 (자연 로그) - double log(double n); - float log(float n); - long double log(long double n); 밑이 10 인 로그 함수 (상용 로그) - double log10(double n); - float log10(float n); - long double log10(long double n); ; 밑이 2 인 로그 함수 - double log2(double n); - float log2(float n); - long double log2(long double n); [예제] "16"에 대.. 2021. 9. 1.
[C++] [STL] bitset bitset - 비트연산과 관련된 STL 이다. ▶ 비트마스크 (Bitmask) 비트마스크 (Bitmask) 비트마스크 정수의 이진수 표현(Bit)을 자료 구조로 쓰는 기법 현대의 모든 CPU는 이진수를 이용해도 모든 자fy 표현 내부적으로 이진수를 사용하는 컴퓨터들은 이진법 관련 연산들을 아주 빨리 zoosso.tistory.com - 헤더파일: #include - bitset은 [index]로 접근해서 연산자로 쓰기/읽기 가능하다. - 주의할 점은 기존 배열이나 문자열과 다른게 시작 인덱스 "0"이 앞쪽이 아닌 뒤쪽(역순)이라는 점이다. 관련 함수 - reset(index): index 비트를 "0" 으로 변경 → bit[index] = 0; 생략시 전체 비트 "0"으로 변경 - set(index, .. 2021. 8. 1.
[C++] [STL] Priority_queue (feat. 여러 기준으로 우선순위 큐 구현해보기) 우선순위 큐 (Priority_queue) 큐(Queue) 선입선출(First In First Out) 구조였다면 우선순위 큐(Priority Queue)는 들어온 순서가 아닌 우선순위에 따라 먼저 처리되는 구조이다. 내부적으로 Heap 자료 구조가 구현되어 있다. ▶ 우선순위 큐 (Priority Queue) ← STL 없이 직접 구현해보기 ▶ 힙(Heap) 자료구조란? 우선순위 큐 (Priority Queue) 우선순위 큐 큐는 선입선출(First In First Out) 자료구조이지만 우선순위 큐는 들어온 순서가 아닌 정의된 우선순위에 따라 먼저 처리되는 구조이다. ex) 수행할 작업이 여러개 있고 시간이 제한되 zoosso.tistory.com 힙(Heap) 자료구조란? Heap - 최대값 또는 .. 2021. 8. 1.
[C++] [STL] List List - 헤더파일: #include - Vector가 배열 기반이었다면 List는 노드 기반이다. - 이중 연결리스트로 구현되어 있다. 그렇기에 원소 중간 삽입시에도 효율적이다. (앞/뒤/중간 추가 가능) ▶ 순차 리스트(정적 배열) & 연결 리스트(동적할당) 비교 [List] 순차 리스트(정적 배열) & 연결 리스트(동적할당) 비교 순차 리스트(정적 배열) & 연결 리스트(동적할당) 비교 List를 구현하는 방법에는 순차 리스트(배열), 연결 리스트 존재한다. ※ 관련 연산: 삽입(insert), 접근(access) 및 탐색(search), 삭제(delete) 각 zoosso.tistory.com 관련 함수 - push_back(val): 뒤쪽에 val 원소 추가 - pop_back(): 뒤쪽 원소.. 2021. 7. 30.
[C++] [STL] Deque Deque - 헤더파일: #include - Vector와 마찬가지로 배열 기반 컨테이너이다. [C++] [STL] Vector 사용 방법 동적으로 원소를 추가하고 크기를 자동으로 늘려주는 Vector C++ 표준 라이브러리(STL) 중 하나이다. → #include - front() : 첫 번째 원소 - back() : 마지막 원소 - begin() : 첫번째 위치 - end() : 마지막.. zoosso.tistory.com - vector와 큰 차이는 push_front()와 pop_front()이다. - Queue 자료구조에서 FIFO (First In First Out) - Stack 자료구조에서 LIFO (Last In First Out) 였다면 [C++] [STL] Queue Queue 기본.. 2021. 7. 30.
[C++] [STL] multiset multiset set이 중복되지 않는 원소를 저장한다면 multiset은 중복 원소를 저장할 수 있다. 기본적인 내장 함수는 Set을 참고해도 좋다. [C++] [STL] Set Set - 중복 없는 원소만을 가지는 집합 같은 것이다. (중복 허용 X) - 헤더파일: #include - set에 들어가는 원소는 자동으로 정렬된다. - set은 기본적으로 오름차순(less) 정렬이고 greater 조건자로 내림 zoosso.tistory.com 중복 원소를 저장할 수 있는 것에 결과값에 차이가 있을 수 있다. - 헤더파일: #include - multiset 원소는 자동으로 정렬된다. - 기본적으로 오름차순(less) 정렬이고 greater 조건자로 내림차순 정렬 가능 관련 함수 - insert(valu.. 2021. 7. 30.
[C++] [STL] Set Set - 중복 없는 원소만을 가지는 집합 같은 것이다. (중복 허용 X) - 헤더파일: #include - set에 들어가는 원소는 자동으로 정렬된다. - set은 기본적으로 오름차순(less) 정렬이고 greater 조건자로 내림차순 정렬 가능 - 내부적으로 균형 이진탐색트리(Balanced Binary Search Tree)로 구현되어 있다. - 중위 순회 구조 관련 함수 - insert(value): value 원소 추가 - insert(iter, value): iter가 가리키는 위치 부터 value 원소를 삽입할 위치 탐색하여 삽입 → insert 함수는 이미 존재하는 원소 삽입 시 아무일도 발생하지 않는다. → pair 타입으로 return 받으면 second값을 통해 이미 존재하는 원소인지.. 2021. 7. 29.
[STL] unique 함수 활용한 vector 중복 원소 제거 unique 함수란? - 헤더파일: #include - vector 배열에서 원소를 중복없이 앞쪽에 채워주는 함수이다. - 기존 크기는 변화가 없기 때문에 앞쪽에 채워지고 남은 뒷공간에 원소들이 그대로 존재한다. ex. {2, 3, 3, 4, 5, 5, 1, 1, 1} → {2, 3, 4, 5, 1, 5, 1, 1, 1} 중복 없는 unique한 원소를 앞쪽에 배치해주는 것이라고 볼 수 있다. 원소 배치 및 개수에 따라 뒤쪽에 중복 원소들이 있을 수 있는데 erase 함수 활용해서 제거할 수 있다. 즉, vector의 중복 원소를 제거할 수 있다. 이러한 처리해주는 것으로는 STL 중 set 이 존재한다. ▶ [C++] [STL] Set [C++] [STL] Set Set - 중복 없는 원소만을 가지는 .. 2021. 7. 29.
[C++] [STL] Vector 사용 방법 동적으로 원소를 추가하고 크기를 자동으로 늘려주는 Vector C++ 표준 라이브러리(STL) 중 하나이다. → #include - front() : 첫 번째 원소 - back() : 마지막 원소 - begin() : 첫번째 위치 - end() : 마지막의 다음 위치 - size() : 원소 개수 - capacity() : 할당된 공간 크기 - push_back(value) : vector 끝에 원소 삽입 - pop_back() : 끝에 있는 원소 삭제 - insert(index, value) : index 위치에 원소 삽입 - erase(iter) : vector의 iter 위치의 원소 삭제 - erase(iter1, iter 2) : [iter 1, iter 2) 앞 까지 원소 삭제 - resize(.. 2021. 7. 26.
[C++] protected 생성자(Constructor)란? 객체지향프로그래밍에서... 아래와 같이 Animal 이라는 모든 동물의 특성을 지닌 객체가 있고, 고유 특성을 지닌 개, 고양이, 닭, 말 등들이 Animal 클래스를 상속하는 경우가 있다. class Animal { public: Animal() {} }; class Harbang : public Animal { public: Harbang() {} // => Harbang() : Animal() {} }; int main() { Animal animal; Harbang harbang; } Animal 클래스에서 기본 생성자가 public이기 때문에 아래와 같이 Animal animal;를 제한없이 선언할 수 있다. 하지만 Animal 객체의 목적은 공통의 특성을 저장하는 것이지 하나의 인스턴스로 사용.. 2021. 7. 4.
반응형