[C++] Constructor(생성자)와 Destructor(소멸자)
·
C & C++/C++
멤버변수의 초기화 클래스를 가지고 객체를 생성하면, 해당 객체는 메모리에 즉시 생성된다. 하지만 이 객체는 모든 멤버 변수를 초기화 하기 전에는 사용할 수 없다. 객체의 멤버 변수는 사용자나 프로그램이 일반적인 초기화 방식으로 초기화할 수 없다. 만약 pirvate 멤버를 가지고있으면 직접 접근할 수 없기 때문이다. 따라서 private 멤버에 접근할 수 있는, 초기화만을 위한 public 함수가 필요하다. Counstructor(생성자) C++에서는 객체의 생성과 동시에 멤버 변수를 초기화해주는 생성자를 제공한다. 생성자의 이름은 해당 클래스의 이름과 같다. 클래스이름(); 생성자는 초기화를 위한 데이터를 인수로 전달받을 수 있다. 생성자는 반환값이 없지만, void형으로 선언하지 않는다. 객체를 초기..
[C++] Class(클래스)란?
·
C & C++/C++
OOP(Object-Oriented Programming) 객체 지향 프로그래밍 객체 지향 프로그래밍에서는 모든 데이터를 객체(object)로 취급하며, 객체가 프로그래밍의 중심이 된다. Object(객체)란? https://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99) 객체 (컴퓨터 과학) - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org 컴퓨터과학에서 객체는 클래스에서 정의한 것을 토대로 메모리에 할당된 것으로 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며, 변수, 자료 구조, 함수가 될 수 있다. 프로그래밍 언어는 변수를 이용해 객체에 접근하므..
[C++/STL] STL이란?
·
C & C++/C++ STL
2019-09-03 updated 평소 알고리즘 문제를 풀면서 STL을 지양하면서 직접 자료구조를 만들어서 (예를들어 queue나 stack 같은..) 구조를 이해하며 문제에 적용시켜 푸는 것을 즐겼다. 하지만 우선순위 큐를 이용하거나 다익스트라 알고리즘이 필요한 문제들이 나오면 어떻게해야할지 막막해졌다. 그래서 STL을 공부해보기로 한다. STL 그렇다면 STL은 무엇일까? STL이란 Standard Template Library의 약자로 표준 라이브러리이다. 컨테이너(Container, 자료구조) Class/ 반복자/ 알고리즘간의 협력에 기반한 템플릿 라이브러리이다. STL없이 알고리즘을 작성할 때 내 입맛에 맞춰 작성하여 문제를 푸는 일이 생각보다 까다롭고 변수 타입에따라 여러가지 벽에 부딪히기도 ..
[Summer/Winter coding 2019] 멀쩡한 사각형 (cpp / python)
·
Algorithm/Programmers
멀쩡한 사각형 문제 설명 처음에 문제를 접했을 때, 아무리 생각해도 로직이 떠오르지 않았다. 그래서 조금 수학적으로 생각을 바꿔보았다. 대각선을 그릴 때에도 가로의 길이와 세로의 길이와 관련이 있다. 중복되는지점이 4개라는 것을 알 수 있다. 결국 이 대각선을 지나는 사각형의 개수를 구하기 위해서는 중복되는 지점의 개수를 찾아 빼주면된다. 이 경우에 중복되는 지점은 1개이다. 빨간 부분에서 중복되는 점이 발생한다. 결국 이 중복되는 점은 두 수(2,3)의 최대공약수이며 위 모양의 반복되므로 그 개수 *4를 해주면 중복되는 지점의 개수를 구할 수 있다. 결국에는 8과 12의 최대공약수가된다. 따라서 이 문제를 식으로 해결하면 answer = w*h(전체 사각형의 개수) - (w + h - gcd(w,h)가..
WONILLISM
'cpp' 태그의 글 목록