https://www.acmicpc.net/problem/1753 Dijkstra기본 구현 시간복잡도 : O(E+ V^2)Heap 구현 시간복잡도 : O(E+V logV) 기본 구현 특징 : 인접정점을 비교한다.heap 구현 특징 : '최소 가중치' 부터 시작한다. #include#include#include#include#include#include#include #define MY_MAX 0x7FFFFFFFusing namespace std; int v, e, k;vector map[20001];int visit[20001];void input(){scanf("%d %d %d", &v, &e, &k);for (int i = 0; i < e; i++){int a, b, c;scanf("%d %d %d"..
factory method 패턴은 부모 클래스에서 자식 클래스가 어떤 객체를 생성할지 결정하도록 하는 패턴 이다. 부모 클래스 - Car자식 클래스 - carSedan, carSUV 코드 #include#include using namespace std; class Car{public:// Factory 함수 -> maekCarstatic Car *makeCar(int index);virtual void info() = 0;}; int main(){vector data;int index;while (true){cout > index;if (index == 0){break;}data.push_back(Car::makeCar(index));}for (int i = 0; i < data.size(); i++)..
delegate와 delegator로 구성되어 있고, delegator로 지시할 수 있다. 코드 #include using namespace std; class Car{public:virtual void info() = 0;}; //delegate(대리인)class carSedan : public Car{public:void info() {cout info(); delegator->call_2();delegator->info();return 0;} 결과 sedan infoSUV infosedan info계속하려면 아무 키나 누르십시오 . . .
singleton을 이용하면 keyboard_1, 2, 3이 있어도 똑같은 결과물을 볼 수 있다. example 1 #include using namespace std; class SystemKeyboard{private:SystemKeyboard():m_numberLock(false), m_capsLock(false){}~SystemKeyboard(){if (m_instance)delete(m_instance);m_instance = nullptr;}static SystemKeyboard *m_instance;bool m_numberLock;bool m_capsLock; public:static SystemKeyboard *getInstance(){if (m_instance == nullptr)m_in..
C++ Programming에서 Object Slicing 이란.SubClass type의 Object가 SuperClass type에 복사 할 때 Object Slicing이 발생한다.이때, SuperClass에는 SubClass에 정의된 변수가 없다. For exampleclass A { int foo; }; class B : public A { int bar; };B Class는 foo과 bar 두개의 멤버변수를 가진다. B b; A a = b;a변수에 b를 대입 하면, 저장할 곳이 없어서 bar 데이터를 복사하지 못한다.
