본문 바로가기

Coding

(195)
make_pair, value-type 속도차이 1. make_pair()을 쓸 경우 임시 pair가 생성되면서 속도 저하가 발생 value_type의 경우 임시 pair가 생기지 않음 2. make_pair() 함수 호출 그대로 남아있음 임시 객체가 생성되기 때문에 타입 사이즈가 클수록 가능한 value_type 사용 First, Second 둘 다 포인터로 넘기면 속도 차이가 0에 수렴 숨은 생성이 있냐 없냐에 따라 최적화된 코드가 달라짐 map의 키는 const, make_pair로 생성이 된 pair 객체는 key가 const가 아니기 때문에 한번 더 형변환이 이루어짐
For문 사용해온 for문 형태 -> for(int i=0;i for(int nx : dx[i]){ } 직접 사용해보고 다시 작성할 예정
Top-down, Bottom-up Top-down : 말그대로 위에서 아래로, 큰 문제에서 작은 문제로 답을 찾는 방식, 점화식을 이해하기 쉽다. ex) dp[n] = fibonacci(n-1) + fibonacci(n-2); Bottom-up : 말그대로 아래에서 위로, 작은 문제부터 시작하여 큰 문제의 답을 찾는 방식, 시간과 메모리 사용량을 줄일 수 있다. ex) for(int i=2; i
정적할당과 동적할당 정적할당 : main함수가 실행 되기 전에 저장공간이 생성되고 생성자가 호출된다. 동적할당 : 말 그대로 동적으로 메모리를 할당 -> new를 이용해 실행하여 메모리를 확보하고 생성자가 자동실행 된다. (힙영역에 존재, 포인터를 받아서 객체 포인터 변수에 주소값을 저장하고 처리), 사용 후 delete로 할당된 메모리를 삭제한다. (런타임 동안 배열 길이 선택가능) 형태 -> int *arry = new int[length]; (int *arry =new int[length](); 이렇게 하면 0으로 초기화 된다) delete[] arry; int *arry = new int; delete arry; ex) int *arry = new int[5]{1,2,3,4,5}; char *aary = new ch..
Pair, Make_pair Pair는 두 가지의 자료형을 하나로 묶는 구조체이다. 형태 -> pair 이름; pair p1; p1 = make_pair("예시1", "예시1-1"); // pair p1("예시1", "예시1-1"); pair p2; p2 = make_pair("예시2", 예시2-1"); pair p3; p3 = make_pair(p1,p2); 만약 p1, p2, p3를 출력해본다면 이렇게 출력이 된다. p1.first -> 예시1 p1.second -> 예시1-1 p2.first -> 예시2 p2.second -> 예시2-1 p3.first.first -> 예시1 p3.first.second -> 예시1-1 ---------------------------------------------------- using N..
Xcode 디버깅 방법 커맨드 + \ -> break 지점 정하기
Continue & Break Continue -> 반복문의 조건검사로 이동 Break -> 자신을 감싸고 있는 반복문 탈출
포인터에 대해서 이중배열 A[MAX][MAX]를 함수의 인자로 받을때 포인터로 받으려면? ex) int A[MAX][MAX]; void count(int (*a)[MAX]){ } 왜 이렇게 받을까?