C++ 함수 포인터 (Function Pointer)
·
C++/Syntax
함수 포인터 (Function Pointer) 기본 예제 배열에서 짝수, 홀수를 각각 출력하는 예제 간단한 버전 #include #include using namespace std; void printNumbers(const array& arr, \ bool print_even) { for (auto e : arr) if ((print_even && e % 2 == 0) || \ (!print_even && e % 2 == 1)) cout
C++ 인라인 함수 (Inline Function)
·
C++/Syntax
인라인 함수 (Inline Function) 함수 반환 값 정의 앞에 inline 키워드를 붙여주면 된다. 컴파일러가 인라인으로 넣을지 결정한다. inline 키워드를 넣지 않아도 인라인 함수로 작동시킬 때도 있고, 키워드를 넣어도 인라인 함수로 작동하지 않는 경우가 있다.
C++ tuple
·
C++/Library
tuple C++11 라이브러리 #include #include std::tuple getTuple() { return (std::make_tuple(10, 3.14)); } int main() { using namespace std; tuple my_tp = getTuple(); cout
따라하며 배우는 C++ 7장
·
C++/TBC++
따라하며 배우는 C++ 7장 Call by Reference std::tuple 인라인 함수 (Inline Function) 함수 포인터 (Function Pointer) std::vector assert 참고 따라하며 배우는 C++
C++ 레퍼런스 (Reference, 참조)
·
C++/Syntax
레퍼런스 (Reference, 참조) 함수의 인자로 const int & 형태를 자주 사용하는 이유 레퍼런스 : 불필요한 복사가 발생하지 않아서 성능 상 이점을 가진다. const : rvalue도 인자로 넘길 수 있어서 확장성이 좋아진다. Call by Reference 포인터를 레퍼런스로 전달하는 방법 #include void foo(int*& ptr) { std::cout
C++ Stack Size
·
C++/Syntax
Stack Size VS에서는 아래와 같은 경우 경고를 띄운다. int main() { using namespace std; int arr[10000]; (void)arr; } 경고 내용 Warning C6262 Function uses '40000' bytes of stack: exceeds /analyze:stacksize '16384'. Consider moving some data to heap. 찾아보니 VS의 기본 스택 프레임 사이즈가 16KB로 설정되어있었고, 변경 가능하다. 스택 사이즈를 제한하는 이유는 쓰레드 개수의 확보를 위해서, 또 스택 오버플로우를 방지하기 위해서라고 한다. OS에 따라 스택 오버플로우 발생 시 자동으로 스택 사이즈를 늘리는 방식도 있다고..
C++ 문자열 (string)
·
C++/Syntax
문자열 (string) text segment #include int main() { using namespace std; const char* name = "Jack jack"; const char* name2 = "Jack jack"; cout
C++ nullptr_t
·
C++/Syntax
nullptr_t C++11 C언어에서 사용되지는 않으나, 라이브러리에 존재하는 자료형이다. #include #include void f(int*) { std::cout
C++ array
·
C++/Library
std::array C++11 size(), begin(), end(), at() 등의 함수 사용 가능 at()으로 접근하는 것은 arr[1] 처럼 직접 주소로 접근하는 것보다 느리지만 조금 더 안전하다. at() 함수는 std::exception을 통해 예외 처리가 되어있다. algorithm 라이브러리의 sort 함수 사용 가능