본문 바로가기
728x90
반응형

분류 전체보기465

Polygon 연습문제 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129#include #define _CRT_SECURE_NO_WARNINGS#pragma warning(disable:4996)#include using namespace std; struct Point { //변수의.. 2022. 7. 10.
[C++] 묵시적 형변환 형변환의 종류는 두가지이다. 묵시적 형변환과 암시적 형변환이 있다. 생성자가 형변환도 담당하나요? i1,i2,i3까지는 납득이 되는 코드이다. 다만 i3=3밑부터 납득이 가지 않는다. 출력을 해보면 생성자가 5개나 호출된 것을 확인할 수 있는데 우선 i4부터 보자. int형인 4를 Item으로 형변환을 시켰더니 생성자가 호출되었다. 이때 이 Item(int num) 생성자를 변환생성자라고 본다. 비슷한 맥락으로 i3=3;을 이해해볼 수 있다. 3이 i3가 될 수 있을까를 고민할때 변환생성자가 있으니 바꿔줄 수 있다! 3을 Item객체로 바꿔주는 과정에서 변환생성자를 통해 임시객체가 생기고, 임시객체에 있는 3이라는 값이 i3로 얕은복사가 된다. (이동 생성자) 그래서 i3=3; 을 묵시적 변환 Item .. 2022. 7. 10.
[C++] 이동 시맨틱 이전까지는 얕은 복사의 문제점을 가지고 깊은 복사를 진행했다면 이번에는 의도적으로 얕은복사를 해볼 것이다. 깊은 복사또한 단점이 있다. strData를 전부 새로 할당한다음에 원본 객체에 있는 문자열을 하나하나 복사한다. 근데 만약에 길이가 길어지면 / 또는 객체의 크기가 커지면 많은 양의 연산을 수행해야한다. 임시객체와 깊은 복사 이 예시를 보면 분명 s5=getName();을 할때만 복사 대입연산자가 실행되면서 깊은복사가 일어날 것이라 추론할 수 있지만 실제로는 복사생성자도 호출되면서 깊은복사가 2번 일어나게 된다. (벌써 비효율이 느껴진다..🚨🚨) 복사생성자가 왜 호출되는지 알기 위해서는 임시객체를 알아야 한다. 우선 getName()이 리턴되면서 소멸자가 호출된다. 문제는 a=getName();을.. 2022. 7. 10.
[그래프] 그래프란 뭘까요? 그래프 정점들의 집합 v와 간선들의 집합 e로 구성된 자료구조 정점의 위치정보나 간선의 순서등은 그래프의 정의에 포함되지 않음 🥑 그래프의 종류 방향그래프 간선이 ‘방향’이라는 새로운 속성을 가짐 무향그래프 간선에 방향이 없는 그래프 가중치 그래프 간선에 ‘가중치’라는 실수 속성을 부여 다중 그래프 두 정점 사이에 두개 이상의 간선이 있을 수 있는 그래프 단순 그래프 두 정점 사이에 최대 한개의 간선만 있는 그래프 트리 혹은 루트없는 트리 부모 자식 관계가 없을 뿐 간선들의 연결 관계는 무향 그래프 이분 그래프 그래프의 정점들을 겹치지 않는 두개의 그룹으로 나눠서 서로 다른 그룹에 속한 정점 간에만 간선이 존재하도록 만들 수 있는 그래프 🥑 그래프의 경로 단순경로 : 경로 중 한 정점을 최대 한 번만 지.. 2022. 7. 10.
728x90
반응형