1. vector 코드 사용 2. doubly linked list 코드 사용
Rule of Five : 클래스에서 동적 할당 메모리를 사용하고 있다면 소멸자, 복제 생성자, 이동 생성자, 복제 대입 연산자, 이동 대입 연산자를 반드시 구현한다.Rule of Zero : 모던 C++로 작성할 경우 raw pointer 대신 STL의 std::ve
경쟁 상태 : 여러 스레드가 공유 리소스를 동시에 접근.x86 프로세서에서 제공하는 INC는 아토믹하지 않으므로, 두 스레드의 작업이 겹치게 되면 예상치 못한 결과를 얻을 수 있다.테어링읽기 테어링 : 1번 스레드가 메모리에 데이터의 일부분만 쓰고 나머지 부분을 다 쓰
참고한 강의STL 컨테이너 중 std::map을 구현해보는 실습을 진행하였다.std::map의 경우 각 노드마다 std::pair를 저장하고 있다. pair의 first가 key, second가 value이다.Pair에 key, value값을 저장하고 {부모노드, 왼쪽
객체지향 언어의 특징캡슐화(은닉성)상속다형성추상화protected자식 클래스에서는 접근이 가능하지만 이외에는 불가능함.이니셜라이저 부분에서 부모 클래스의 멤버변수를 초기화할 수 없음.자식 클래스 객체를 생성하면 Child 클래스 생성자가 먼저 생성된다.Child 클래스
Smart Pointer 크게 unique pointer와 shared pointer가 있다. Resource Acquisition is Initialization(RAII) idiom을 위해서 사용. 스마트포인터는 RAII 중 힙 메모리 Resource를 관리해준다.
C++는 multi paradigm language로 Procedural, function, OOP, generic을 모두 지원하고, 그 중 OOP가 중심이다.class를 중심으로 구현.class -> definition.object -> 실제 메모리를 차지하는 객체.
try 내의 코드를 실행하는 도중 throw가 발생하면 catch 구문에서 해당 throw를 catch함.이때 throw는 객체 R-value이며 catch는 throw한 객체의 reference로 받아야 함.예시에서는 exception을 include하고 except
C++은 header 파일과 cpp 파일로 나뉜다.라이브러리의 경우 static / dynamic / header only 라이브러리가 존재함.pre processorcompile머신 코드, 데이터로 이루어진 object file 생성.Linkerobject file을
표준 템플릿 라이브러리. 컨테이너와 알고리즘으로 구성됨.메모리에서 연속적으로 위치함.생성자생성한 배열의 크기와 같은 capacity를 가진다.assign선언한 vector 객체를 재사용할 때 사용.항목 룩업인덱스 연산을 통해 접근 시 유효 범위를 벗어나면 에러를 발생시