[C++] auto와 람다식
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com auto를 이용한 쉬운 변수 선언 auto 키워드는 C++11 표준부터 의미가 수정되어, 변수 선언문으로부터 변수의 타입을 추론하여 결정하도록 지시 auto는 복잡한 형식의 변수 선언을 간소하게 해주며, 타입 선언의 오타나 번거로움을 줄이게 해준다 auto pi = 3.14; // 3.14가 실수이므로 pi는 double 타입으로 선언됨 auto n = 3; // 3이 정수이무로..
2023.12.20
no image
[C++] 표준 템플릿 라이브러리(STL)
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 개요 표준 템플릿 라이브러리(Standard Template Library, STL)는 템플릿으로 작성된 많은 제네릭 클래스와 함수 라이브러리이다. ISO/ANSI C++ 표준위에서는 STL을 C++의 표준으로 채택하여 현재 C++ 표준 라이브러리에 포함되게 되었다. STL에 포함된 제네릭 클래스와 함수들은 컨테이너, iterator, 알고리즘크게 3가지로 분류된다. 또한 이 세..
2023.12.20
[C++] 제네릭 클래스 만들기
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 제네릭 클래스 개요 template를 이용하면 제네릭 클래스(generic class)도 만들 수 있다. int 값을 저장하는 스택, double 값을 저장하는 스택, char 값을 저장하는 스택 등 다양한 스택이 필요할 수 있다. 다만 이들 스택 클래스는 데이터의 타입만 다를 뿐 알고리즘은 동일하기에, 템플릿을 이용하여 스택에 저장되는 데이터 타입을 일반화시킨 제너릭 스택 클래..
2023.12.19
[C++] 다양한 제네릭 함수 만들기
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 하나의 제네릭 타입을 가진 경우 두 개의 매개 변수로 부터 큰 값 구하기 두 수를 매개 변수로 받아 큰 값을 리턴하는 제네릭 함수 bigger()를 만들어 보자. bigger()는 2개의 매개 변수와 리턴 타입이 동일하므로, bigger() 함수의 템플릿 원형은 다음과 같이 선언 template T bigger(T a, T b) // 두 개의 매개 변수 a, b를 비교하여 큰 값..
2023.12.19
no image
[C++] 템플릿
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 함수 중복의 약점 함수 중복은 편리하지만 약점도 있다. 아래 swap() 함수를 보자. #include using namespace std; void myswap(int& a, int& b) { int tmp; tmp = a; a = b; b = tmp; } void myswap(double& a, double& b) { double tmp; tmp = a; a = b; b = ..
2023.12.19
no image
[C++] 추상 클래스
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 순수 가상 함수 기본 클래스에 작성된 가상 함수는 실행할 목적보다는, 파생 클래스에서 재정의하여 구현할 함수를 알려주는 인터페이스 역할 파생 클레스에서 가상 함수를 재정의 하면, Shape 클래스의 draw() 함수처럼, 동적 바인딩에 의해 기본 클래스의 가상 함수는 거의 실행되지 않는다. 순수 가상 함수(pure virtual function)는 함수의 코드가 없고, 선언만 있..
2023.12.19
[백준 3986번] 파이썬 - 좋은 단어
백준 3986 - 좋은 단어 시간 제한 1초, 메모리 제한 256MB # 조건 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 깨고 말았다. 안타깝게도 자는 동안 키보드가 잘못 눌려서 보고서의 모든 글자가 A와 B로 바뀌어 버렸다! 그래서 평석이는 보고서 작성을 때려치우고 보고서에서 '좋은 단어'나 세보기로 마음 먹었다. 평석이는 단어 위로 아치형 곡선을 그어 같은 글자끼리(A는 A끼리, B는 B끼리) 쌍을 짓기로 하였다. 만약 선끼리 교차하지 않으면서 각 글자를 정확히 한 개의 다른 위치에 있는 같은 글자와 짝 지을수 있다면, 그 단어는 '좋은 단어'이다. 평석이가 '..
2023.12.18
no image
[C++] 가상 함수와 오버라이딩의 활용 사례
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 가상 함수는 파생 클래스에서 오버라이딩할 함수를 알려주는 인터페이스의 역할을 한다. 응용 사례를 다루며 아래 4가지 주제에 대해 알아보자. 가상 함수를 가진 기본 클래스의 목적 가상 함수 오버라이딩 동적 바인딩 실행 기본 클래스의 포인터 활용 가상 함수를 가진 기본 클래스의 목적 Shape은 Circle, Rect, Line 등 도형의 공통 속성을 구현하는 기본 클래스의 역할을 ..
2023.12.18
[C++] 오버라이딩
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com C++ 오버라이딩 특징 성공 조건과 실패 가상 함수의 이름과 매개 변수 타입, 개수뿐 아니라 리턴 타입도 일치해야 오버라이딩이 성공 아래는 리턴 타입이 달라 가상 함수 fail()의 오버라이딩이 실패한 사례 #include using namespace std; class Base { public: virtual void success() { cout
2023.12.18