C/C++

· C/C++
1. CLion 설치 jetbrain 공식 사이트 링크에서 다운로드 2. 컴파일러 설치 MinGW 다운로드 링크 ※ Microsoft Visual Studio 가 이미 설치되어 있다면 이 과정은 생략 가능. ※ OS가 Windows가 아니라면 굳이 MinGW를 선택할 필요는 없다. OS 에 따라 지원하는 컴파일러가 다르다. OS Support Compiler Windows MinGW, MinGW-w64, Cygwin, WSL, Visual Studio mac already installed Linux already installed (gcc, g++) Exception seh : Structured Exception Handling => Windows에서 자체적으로 사용하는 예외처리 매커니즘 (※ gcc..
· C/C++
C style array int arr[size] = { 1, 2, 4, 6, 10} C++ 11 std::array = {1, 2, 4, 6, 10} 대체 std::array 얘 왜쓰냐고? C style쓰면 배열 사이즈를 sizeof(arr) / sizeof(int) 등 하드코딩해서 구해준 상태로 함수 호출시 넘겨줘야했음. std::array는 standard template을 따르기 때문에 Iterator, parameter as reference , algorithm container, range-based for loop 등이 적용 가능함. + parameter로 넘어갈 때 포인터로 자동 형변환 되지 않음. (보통 const reference로 받음) [Reference] http://www.cp..
· C/C++
lvalue: 수식이 끝나도 존재하는 RAM 상에 load된 주소를 가리키는 변수 (locator value) rvalue: 수식의 값 자체 (ex. 숫자, 문자, 문자열 자체) 분류 lvalue rvalue 의미 locator value : 주소를 가리키는 변수 수식의 값 자체 예시 포인터 변수, 정적 변수 숫자, 문자, 문자열 (1, 'a', "hello world") 특징 statement 수식 끝나는 시점에도 메모리 상주 ex) ++i statement 종료 시점에 사라지는 임시적인 값 ex) i++ C++11 부터는 rvalue 참조자 '&&'를 사용하면 수식이 종료되어도 lifecycle(생명주기)를 연장할 수 있다. move sementic의 efficient를 보장하기 위해 존재하는 mov..
· C/C++
Modern C++ (C++ 11 ) 이후부터는 typedef 대신 keyword 'using'을 사용하라 [구문] using alias_name = primitive_data_type; 중간에 삽입되어있는 '=' 가 delimeter 역할을 해주어 코드 가독성이 향상된다. typedef primitive_data_type alias_name에서 업데이트되었다.
· C/C++
What's Lambda? Lambda is Function Object When to use? 한번 쓰고 말 간단한 함수 ex) sort compare , set || priority queue costructor comporator 클로저 기법을 통한 Function Object 생성 #include using namespace std; class LambdaTest { private: int localVariable; public: // this is closure explicit LambdaTest(int a) : localVariable{a} {}; int LambdaTest::operator()(int x) const { // function object return return localVa..
· C/C++
마법의 키워드 template 를 알아보자 이놈이 있기 전까지 우린 항상 int arr[n] type을 지정했다 그리고 매번 STL의 vector, list등을 사용할 때 vector 에서 이 꺽새 안에 들어가는 datatype을 왜 명시하는 것이었나? [구문] template class Class_Name { } 이 마법의 구문을 클래스 상단에 명시하면 클래스 생성시 어떤 타입이든 명시한 typename으로 대치시켜준다. (컴파일러단에서 수행) 따라서 string, int, etc... 어떤 타입이든 담을 수 있었던 것이다. 템플릿(template)이란 단어가 의미하는 '틀', 어떤 데이터 타입이든 담아낼 수 있는 class 틀을 의미한다. 배열 내의 최대 값을 반환하는 템플릿 함수를 만들어봤다. [R..
M_Falcon
'C/C++' 카테고리의 글 목록