지난 포스팅에 이어서 C++ 최신 버전에서 추가된 문법들에 대해서 공부한 내용을 정리해 보려고 한다. 새로운 자료형 nullptr NULL을 쓰면 가끔 이상한 일이 발생된다. C++에서 NULL은 어떤 타입이 아니라 0이다. 따라서 함수를 호출할 때 적합하지가 않다. 따라서 nullptr가 등장하였다. nullptr는 null 포인터 상수이다. nullptr는 다음과 같이 사용할 수 있다. // Main.cpp Class* myClass = new Class("COMP3200"); const Student* student = myClass->GetStudent("Coco"); if (student != nullptr) { std::cout GetID()
STL
이번 포스팅에서는 STL 알고리즘에 대한 간단할 설명 및 C++ 최신 문법에서 추가된 키워드, 자료형, STL 등에 대해서 알아보고자 한다. STL 알고리즘 STL 알고리즘이란 요소 범위에서 쓸 수 있는 함수들을 의미한다. 따라서 배열 또는 몇몇 STL 컨테이너에서 쓸 수가 있다. 이 때 반복자를 통해 컨테이너에 접근한다. 컨테이너의 크기를 변경하지 않기 때문에 추가 메모리 할당도 없다. 유형별로 다음과 같이 호출하는 include 문이 다르다. #include 변경 불가 순차(sequence) 연산 : find(), for_each() 변경 가능 순차 연산 : copy(), swap() 정렬 관련 연산 : sort(), merge() #include 범용 수치 연산 : accumulate() 예를 들어..
이번 포스팅에서는 STL의 맵(Map)에 대해서 정리해 보려고 한다. 첨부한 이미지는 포큐 아카데미의 C++ 강의 내용 화면이다. 맵(Map) 맵은 STL 컨테이너에서 Key-Value 형태로 데이터를 저장하는 구조이다. 키는 중복될 수 없다. C++맵은 키 값을 기준으로 자동으로 정렬이 되는 컨테이너이다. 그리고 맵은 이진 탐색 트리(BST) 기반이다. 빈 맵을 만들 때는 key와 value의 타입을 반드시 선언해 주어야 한다. 그리고 어떤 맵과 같은 크기 및 데이터를 가지는 맵을 초기값으로 생성해서 맵을 만들 수도 있다. 두 개의 데이터를 하나의 단위로 저장하는 구조를 pair 라고 한다. 맵에 새로운 요소를 삽입하려고 할 때에는 insert() 메서드를 사용한다. 이 때 반환은 반복자(iterato..
이번 포스팅에서는 STL의 벡터(Vector)에 대해서 정리해 보려고 한다. C++의 표준 템플릿 라이브러리(STL)는 C++ 프로그래밍에서 필요한 자료구조와 알고리즘을 템플릿으로 제공하는 라이브러리이다. STL은 일반적으로 다음 세 가지 라이브러리를 의미한다. 컨테이너(Container) : 임의 타입의 객체를 보관. 객체를 저장하는 자료구조 시퀀스 컨테이너(Sequence Container) : Array, Vector, List, Deque 협력 컨테이너(Associative Container) : Set, Multiset, Map, Multimap 반복자(Iterator) : 포인터와 유사한 개념. 컨테이너에 보관된 원소에 접근하여 다음 원소를 가리킴. 순회 알고리즘(Algorithm) : 반복자..