C++ - 템플릿
C++ 템플릿 1. 개요 코드는 같은데 자료형만 다른 것을 컴파일러가 만들어주는 것이다. 딱히, 성능에는 이득이 없고 개발자만 편한 기능이지만 이 기능은 매우 많이 사용되고 있다. 2. 템플릿 함수 템플릿 함수는 함수의 매개 변수 또는 구현에 사용되는 자료형을 결정하여 생성한다. 일반적으로는 {반환형} {함수 이름} ( {매개변수} ) { {함수...
C++ 템플릿 1. 개요 코드는 같은데 자료형만 다른 것을 컴파일러가 만들어주는 것이다. 딱히, 성능에는 이득이 없고 개발자만 편한 기능이지만 이 기능은 매우 많이 사용되고 있다. 2. 템플릿 함수 템플릿 함수는 함수의 매개 변수 또는 구현에 사용되는 자료형을 결정하여 생성한다. 일반적으로는 {반환형} {함수 이름} ( {매개변수} ) { {함수...
C++ 자주 쓰는 STL 1. STL 개요 STL(Standard Template Library)는 프로그래밍 언어를 위해 처음 설계한 소프트웨어 라이브러리이다. 원래라면 C++에만 있는건 아니라는 뜻이다. 하지만 C++ 표준 라이브러리에 많은 영향을 끼쳤으며 이는 컨테이너, 알고리즘, 반복자, 기능으로 구분된다. 1) 컨테이너(Container...
C++ 클래스 1. 개요 기본적으로는 특정 객체를 생성하기 위한 틀과 같다. 클래스를 정의하고 해당 클래스로 객체를 만들어야 비로소 사용할 수 있다. 기본적으로 객체 지향 프로그램에서 빠질 수 없는 기본중의 기본으로 C++에서도 당연히 클래스를 지원한다. C++ 에서 클래스는 두가지 관점으로 나눠서 생각할 수 있는데, 값처럼 사용하는 것이 첫번...
C++ 파일 입출력 파일 입출력을 할 때 C 형식으로 받아오고 쓰는 경우가 많아서 C++ 형식으로는 어떻게 하는게 좋은지 정리를 하려고 한다. 1. 도입 우리가 어떤 제품으로써 프로그램을 짜게되면 필연적으로 파일을 다루게 된다. 여기서 말하는 파일이란 txt와 같은 텍스트 파일을 말할 수도 있고, 특정 포맷으로 이루어진 바이너리 파일일 수도 있다....
C++ 함수 1. 선언 1) 기본형 기본적으로 c++에서 함수의 선언 형태는 아래와 같다. {반환 자료형} {함수이름} ( {매개변수들}); 기본적인 선언은 위와 같고 이후 별도로 함수 내용을 정의하거나, 끝에 세미콜론 대신 아래와 같이 정의할 수 있다. int sum (int a, int b) { return a+b; } 반환형이 vo...
C++ 문자, 문자배열, 문자열 1. 문자 기본적으로 아스키코드 문자라면 1개당 1byte를 요한다. 인터넷 웹페이지에서 사용하는 UTF-8은 영문의 경우 1byte이고 한글이나 한자는 3byte이다. 한글 문자 인코딩 표준은 KS X 1001, EUC-KR에 따라 2byte 문자로 처리된다. 그래서 만약 한국어 문자를 입력하고 싶다면 char 형으...
C++ 조건 분기문, 반복문 1. 조건 분기문 특정 조건이 만족하면 해당 문을 실행하고 만족하지 않으면 해당 문을 실행하지 않는 조건 분기문이다. 1) if else 대부분의 언어들이 if 식별자를 지원하며, C++ 역시 마찬가지이다. // 단일 조건 if({조건}) { } // if 안의 값이 아닐 경우 나머지 처리 if({조건}){ } e...
C++ 배열, 포인터, 참조자 1. 배열 코드 짜는데 배열 모르는 사람이 있나?라고 물을 수 있다. 배열 모르는 사람은 없다. 단지, 하이레벨 언어를 사용하다보면 C계열 언어 배열 선언법을 까먹을 순 있다 ;; Javascript는 별도로 array로 만들던가, 그냥 배열 형태로 값을 넣으면 됐었고, python도 그냥 넣으면 된다. 이렇게 되니...
C++ 자료형과 변수 1. 자료형 1) 기본 자료형(Primitive data types) a. bool(boolean) 1byte의 크기를 갖는 자료형으로 true, false 만 넣을 수 있다. 비교 연산자 (<,>)에서의 반환값은 모두 bool이며 기본적인 내용은 C와 동일하다. bool flag = true; b. int(in...
C++ C++를 내가 처음 접한건 대학교 2학년때이다. 당시에 1학년때 C언어를 배우고 Row level 언어에 흠뻑 빠져있던 시절 C++은 객체 지향에 대한 인식을 심어준 첫번째 언어이다. 이후 Java를 좀 쓰다가 취직후 Javascript와 Python만 썼었는데 이후 대학원에 와서 DiskANN 분석을 위해 C++ 코드를 접하니까 하나도 기억이...