전체 글 147

[Data Structure] C++로 구현해보는 자료구조 - 들어가며

C++로 구현해보는 자료구조 - 들어가며자료구조를 정리하는 마음으로 본 글을 포스팅하려고 한다. 순서는 다음과 같이 이뤄진다.- 선형 자료구조배열(Array)정렬 정적 배열(Sorted Static Array)비정렬 동적 배열(Unsorted Dynamic Array)정렬 동적 배열(Sorted Dynamic Array)연결구조(Linked List)단일 연결구조(Single Linked List)이중 연결구조(Double Linked List)선형 연결구조(Circular Linked List)스택(Stack)배열 버전연결구조 버전큐(Queue)배열 버전 / 환형 큐(Circular Queue)연결 구조 버전데크(Deque)- 비선형 자료구조트리(Tree)이진 탐색 트리(Binary Search Tre..

카테고리 없음 2018.01.10

[Modern C++] Smart Pointer - std::unique_ptr

보았듯 좀 더 최적화가 되어있다.주로 사용되는 메소드는 다음과 같다.이름설명get자원에 대한 포인터를 반환한다.release자원을 가리키는 포인터를 돌려준 후 해당 자원을 해제한다.reset자원을 재설정 한다.swap인자로 전달된 포인터와 자원을 치환한다.Terminology메모리 누수동적으로 객체 생성 및 사용 후, 메모리를 시스템에 반환하지 않아 누적되면 메모리가 부족해지는 현상댕글링 포인터포인터 변수가 가리키는 객체를 이미 삭제해서 다른 용도로 메모리를 사용중임에도 이 공간을 그 포인터 변수로 다시 참조하는 경우중복 삭제한 코드에서 객체를 삭제했는 데, 다른 코드에서 그 메모리를 다시 삭제하는 경우

Outdated/Library 2018.01.09

[Modern C++ 14] Smart Pointer - std::weak_ptr

Modern C++ 14주제 : Smart Pointer(std::unique_ptr, std::shared_ptr, std::weak_ptr) 헤더 : 설명 모던 C++에는 스마트 포인터 객체가 추가되었다. 기존 C 스타일의 포인터는 동적으로 생성된 객체들을 프로그래머가 잘 제어했어야 했다. 메모리가 잘 관리되지 않는다면 메모리 누수(memory leak), 댕글링 포인터(dangling pointer), 중복 삭제(double free) 등의 문제가 생길 수 있다. 스마트 포인터는 RAII(Resource Acquisition Is Initialization) 기법을 이용해 메모리 해제를 자동화시킴으로써 프로그래머의 실수를 줄여 보다 더 안전한 프로그래밍을 할 수 있게 되었다. 또한, 템플릿으로 작성..

Outdated/Library 2018.01.04

[Modern C++ 14] Smart Pointer - std::shared_ptr

Modern C++주제 : Smart Pointer(std::unique_ptr, std::shared_ptr, std::weak_ptr) 헤더 : 설명 모던 C++에는 스마트 포인터 객체가 추가되었다. 기존 C 스타일의 포인터는 동적으로 생성된 객체들을 프로그래머가 잘 제어했어야 했다. 메모리가 잘 관리되지 않는다면 메모리 누수(memory leak), 댕글링 포인터(dangling pointer), 중복 삭제(double free) 등의 문제가 생길 수 있다. 스마트 포인터는 RAII(Resource Acquisition Is Initialization) 관용구를 이용해 메모리 해제를 자동화시킴으로써 프로그래머의 실수를 줄여 보다 더 안전한 프로그래밍을 할 수 있게 되었다. 또한, 템플릿으로 작성되어..

Outdated/Library 2018.01.02

[Modern C++]Initializer_list

Initializer list from Seonmun Choi Modern C++주제 : std::Initializer_list 헤더 : 설명 : initializer_list 타입의 객체는 배열 식의 접근이 가능한 경량화된 대용 객체(a lightweight proxy object)이다.기존 C++03까지는 다음과 같은 4가지의 초기화 방법을 제공하였다.예1 괄호) std::string s("apple"); 예2 =) std::string s = "apple"; int n = 0; 예3 {}) int arr[4] = {0,1,2,3}; struct tm today = {0}; 예4 생성자) struct S { int x; S(): x(0) {} } 기존 초기화의 문제점은 동적 배열의 초기화 방법이 없다..

Outdated/Library 2017.11.24

[Debug]MSB6006 문제 종료 코드 2

열심히 코딩을 하고 빌드를 누르는데, 여느 때처럼(?) 빌드가 잘 되지 않았다.헌데, 이번에는 진짜 한번도 못 봤던 에러였다. >------ 빌드 시작: 프로젝트: FirstStep, 구성: Debug Win32 ------ 1> TRACKER : 오류 TRK0005: "CL.exe"을(를) 찾지 못했습니다. 지정된 파일을 찾을 수 없습니다. 1> 1> 1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB6006: "CL.exe"이(가) 종료되었습니다(코드: 5). ========== 빌드: 성공 0, 실패 1, 최신 0, 생략 0 ==========대략 이런 오류였다. (현재 repa..

카테고리 없음 2017.11.01