[C++] 참조에 의한 호출, call by reference
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 참조에 의한 호출, call by reference 이전 게시물에서 참조&에 대해 알아보았는데 원본 변수와 참조 변수를 함께 사용하면 변수 사용이 혼란스러워지는 것은 사실이다. 참조는 C++의 새로운 인자 전달 방식인 '참조에 의한 호출'에 많이 사용된다. 함수의 매개 변수를 참조 타입으로 선언, 매개 변수가 함수를 호출 하는 쪽의 실인자를 참조(reference)하여 실인자와 ..
2023.12.04
[C++] 함수와 참조
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 함수의 인자 전달 방식 값에 의한 호출(call by value) 값에 의한 호출은 호출하는 코드에서 넘겨주는 실인자 값이 함수의 매개 변수에 복사되어 전달되는 방식 주소에 의한 호출(call by address) 주소를 직접 포인터 타입의 매개 변수에 전달받는 방법 아래와 같이 매개 변수로 복사한 경우 변경되지 않지만, 포인터 매개 변수로 전달 시 main 스택의 m, n이 교..
2023.12.03
no image
[C++] string 클래스를 이용한 문자열 사용
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com string 클래스 개요 C-스트링은 C언어에서 사용해오던 전통적인 문자열, '\0'로 끝나는 문자 배열을 문자열로 취급하는 방법 string은 C++ 표준 라이브러리에서 제공하는 클래스, 문자열을 객체로 다룬다. string은 문자열을 저장하는 버퍼와 함께, 문자열을 다루는 다양하고 유용한 함수와 연산자들을 멤버로 가지고 있다. #include using namespace st..
2023.12.01
[C++] this 포인터
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com this this는 객체 자신에 대한 포인터로서 클래스 멤버 함수 내에서만 사용. 전역 변수, 지역 변수 둘 다 아니다. 정확히 말하면 객체의 멤버 함수가 호출될 떄, 컴파일러에 의해 보이지 않게 전달되는 객체에 대한 주소 class Circle { int radius; public: Circle() { this->radius = 1; } Circle(int radius) { t..
2023.12.01
[C++] 동적 메모리 할당 및 반환
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 일반적으로 개발자는 프로그램 작성 단계에서 필요한 메모리를 확보하기 위해 변수, 객체, 배열을 정적으로 선언한다. 하지만, 사용자의 마음에 따라 달라지는 문서 편집기 등은 필요한 메모리를 프로그램 작성 단계에서 모두 선언하는 것은 불가능하다. 따라서, 이런 유형의 응용PR을 위해, 실행 중에 필요한 만큼 메모리를 할당받고 필요 없을 때 반환하는 '동적 메모리 할당/반환 메커니즘'..
2023.11.30
no image
[C++] 객체 포인터와 객체 배열
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 객체 포인터 C++에서 객체를 다루기 위해 객체에 대한 포인터 변수를 선언하고, 이 포인터 변수로 객체의 멤버 변수를 읽고 값을 쓰거나 멤버 함수를 호출한다. Circle donut; double d = donut.getArea(); Circle* p; // 객체에 대한 포인터 변수 선언 p = &donut; // 포인터 변수에 객체 주소 지정 Circle* p = &donut ..
2023.11.30
no image
[C++] 포인터
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 포인터 C/C++ 언어에서 포인터(pointer)는 실행 중 메모리의 주소 값이다. 주소(포인터)를 이용하여 메모리에 직접 값을 쓰거나 메모리로부터 값을 읽어올 수 있다. 변수의 메모리 주소 변수란 프로그램 내에서 사용하는 이름 각 변수마다 메모리 공간이 할당 된다. int n; n = 3; 위 코드에서 n은 정수를 저장할 메모리 공간에 대한 이름 그러나 값 3이 메모리 몇 번지..
2023.11.30
no image
[C++] 구조체
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 구조체 선언 C언어와의 호환성을 위해 구조체(struct) 지원 C++ 구조체는 표준 C 구조체에 기능 확장 => 클래스와 동일한 구조와 기능 struct 키워드로 선언, 멤버 변수와 함수 가지고 접근 지정도 해야 함 struct structName { // 디폴트 접근 지정은 public. public 속성의 멤버 변수나 멤버 함수 선언 private: // private 속성..
2023.11.29
no image
[C++] priority queue with Cpp
정의 우선순위 큐(priority queue)는 각 요소에 어떠한 우선순위가 추가로 부여되어 있는 컨테이너 container를 max heap으로 유지 특징 우선순위가 높은 요소는 우선순위가 낮은 요소보다 먼저 제공 일부 구현에서 두 요소의 우선 순위가 같으면 대기열에 포함된 순서에 따라 제공된다. 다른 구현에서 동일한 우선 순위를 가진 요소의 순서는 정의되지 않은 상태로 유지 데이터가 완벽히 정렬된 상태는 아니지만 최댓값은 빠르게 찾을 수 있음 연속적으로 데이터의 최댓값 또는 최솟값만 필요 시 상수가 큰 std::set 보다 훨신 효율적 동작 시간복잡도 힙 기반으로 -> 완전 이진 트리로 최소힙 또는 최대힙이 있다. 삽입, 삭제, 탐색, 수정에 대해 O(logN) int형 우선순위큐 greater를 써..
2023.11.29