본문 바로가기

728x90

분류 전체보기

[C++][Effective C++] 18~25. 설계 및 선언 [Effective C++(3판)]에 대한 내용을 공부하면서 정리한 내용이다. 이번에 요약하는 내용은 18~25 항목으로 아래와 같다. 18. 인터페이스 설계는 제대로 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게 하자 19. 클래스 설계는 타입 설계와 똑같이 취급하자 20. '값에 의한 전달'보다는 '상수객체 참조자에 의한 전달' 방식을 택하는 편이 대개 낫다 21. 함수에서 객체를 반환해야 할 경우에 참조자를 반환하려고 들지 말자 22. 데이터 멤버가 선언될 곳은 private 영역임을 명심하자 23. 멤버 함수보다 비멤버 비프렌드 함수와 더 가까워지자 24. 타입 변환이 모든 매개변수에 대해 적용되어야 한다면 비멤버 함수를 선언하자 25. 예외를 던지지 않는 swap에 대한 지원도 생각해 보자 요약 18. .. 더보기
[C++][Effective C++] 13~17. 자원 관리 [Effective C++(3판)]에 대한 내용을 공부하면서 정리한 내용이다. 이번에 요약하는 내용은 05~12 항목으로 아래와 같다. 13. 자원 관리에는 객체가 그만! 14. 자원 관리 클래스의 복사 동작에 대해 진지하게 고찰하자 15. 자원 관리 클래스에서 관리되는 자원은 외부에서 접근할 수 있도록 하자 16. new 및 delete를 사용할 때는 형태를 반드시 맞추자 17. new로 생성한 객체를 스마트 포인터에 저장하는 코드는 별도의 한 문장으로 만들자 요약 13. 자원 관리에는 객체가 그만! 자원이 항상 해제되도록 만들 방법은, 자원을 객체에 넣고 그 자원 해제를 소멸자가 맡도록 하며, 그 소멸자는 실행 제어가 func(자원을 생성하게 된 함수)를 떠날 때 호출하게 하는 것이다. 자원을 객체에.. 더보기
[백준알고리즘] 4796번: 캠핑 -C++ [백준알고리즘] 4796번: 캠핑 -C++ 4796번: 캠핑 (acmicpc.net) 4796번: 캠핑 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다. www.acmicpc.net 그리디의 다른 쉬운 문제를 풀었다. 이 문제도 예전에 풀었던 ATM 문제와 같이 SJF 방식으로 풀면 된다. 이게 그리디지 ㅋㅋ 하면서 쉬워서 기분 좋았다. 잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다 문제 풀이 어떤 경우에서든 연속된 \(P\) 일 중에 최대 \(L\) 일만 사용할 수 있어야 한다. 즉, \(V+0 \sim V+P+0\) 까지도 \(L\) 일만 사.. 더보기
[C++][Effective C++] 05~12. 생성자, 소멸자 및 대입 연산자 [Effective C++(3판)]에 대한 내용을 공부하면서 정리한 내용이다. 이번에 요약하는 내용은 05~12 항목으로 아래와 같다. 05. C++가 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자 06. 컴파일러가 만들어낸 함수가 필요 없으면 확실히 이들의 사용을 금해 버리자 07. 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자 08. 예외가 소멸자를 떠나지 못하도록 붙들어 놓자 09. 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 10. 대입 연산자는 *this의 참조자를 반환하게 하자 11. operator=에서는 자기대입에 대한 처리가 빠지지 않도록 하자 12. 객체의 모든 부분을 빠짐없이 복사하자 요약 05. C++가 은근슬쩍 만들어 호출해 버.. 더보기
[영화리뷰] 블라인드 멜로디(Andhadhun) (2018) [영화리뷰] 블라인드 멜로디(Andhadhun) (2018) 리뷰를 쓰지 않고 '폭풍 속으로'와 '인사이드 맨'을 봤었다. 이 영화 역시도 리뷰를 쓰려고 생각하지 않고 시청했어서 자세히 보지는 않았다. 그런데 꽤 특이하고 재밌어서 남기게 되었다. 당연히 스포가 포함된다. 우선, 이 영화는 인도 영화다. 처음에 어디 영화인지도 모르고 시놉시스만 보고 골랐는데, 주인공이 말할 때 미국이나 유럽은 아니라는 것을 알고 찾아봤다. 인도 영화라는 것을 보고는 발리우드 특유의 마살라(뮤지컬 영화적 요소)가 많을 것이라 예상했다. 그런데, 생각보다 마살라적인 요소는 많이 없었다. 뮤지컬 영화를 싫어하는 사람들을 보면 너무 뜬금없어서 싫다고 하던데, 이 영화는 주인공의 직업(피아니스트)상 자연스럽게 영화의 흐름에 방해를.. 더보기
[백준알고리즘] 16953번: A → B -C++ [백준알고리즘] 16953번: A → B -C++ 16953번: A → B (acmicpc.net) 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 그리디 느낌이 나는 쉬운 문제를 찾다가 발견했다. 어려운 문제는 아니었으나, 문제 풀이를 생각했을 때 직관적으로 그리디 하게 풀 수 있겠다고 느꼈다. 잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다 문제 풀이 정수 A에서 B로 바꿔야 한다. 아래의 두 가지 경우를 하나씩 사용해 최종적으로 B로 바꿔야 한다. 2를 곱한다. 가장 오른쪽 수에 1을 추가한다. (자리수 이동) 즉, 예제와 같이 A와 B가 각각 2와 162라면, 아래와 같이 변경할 수 있다. 최종적으로 4개의 연산이 요구된다... 더보기
[백준알고리즘] 1439번: 뒤집기 -C++ [백준알고리즘] 1439번: 뒤집기 -C++ 1439번: 뒤집기 (acmicpc.net) 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 그리디 알고리즘을 풀어보고 싶어서, 안 푼 그리디 문제 중에 그나마 쉬운거부터 골랐다. 쉽게 풀긴 했는데, 이게 그리디인지는 느낌이 안 오는 문제였다. 다른 문제를 더 풀어봐야 할 것 같다. 잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다 문제풀이 0과 1로 이루어진 문자열이 주어진다. 이때 0은 1로, 1은 0으로 뒤집을 수 있다. 모두 같은 숫자로 이루어진 문자열을 .. 더보기
[디자인패턴][생성패턴] 팩터리 Factory - C++ [모던 C++ 디자인 패턴] 책을 바탕으로 공부하는 내용을 정리한 내용이다. Factory pattern 두 개의 GoF(Gang of Four) 패턴, 팩터리 메서드와 추상 팩터리를 동시에 알아본다. 이 두 패턴은 긴밀하게 연관이 되어있다. 시나리오 직교 좌표계의 좌표점 정보를 저장한다고 가정하자. 다음과 같이 쉽게 구현할 수 있을 것이다. struct CPoint { CPoint(const float x, const float y) : m_x(x), m_y(y) {} float m_x, m_y; //< 직교 좌표계의 좌표 } 여기서 극좌표계로 좌표점 정보를 저장해야 한다면 어떻게 할까? 쉽게 다음과 같이 극좌표계용 생성자를 추가할 것이다. CPoint(const float r, const float .. 더보기

728x90