Inventory
-
set 컨테이너@ 16. 1 ~ 17. 1/STL 2014. 4. 17. 23:01
set 컨테이너 연관 컨테이너 중 단순한 컨테이너로 key라 불리는 원소의 집합으로 이뤄진 컨테이너이다. 그래서 key(원소)를 저장하는 멤버함수 insert()를 유일하게 제공한다. 모든 연관 컨테이너는 노드 기반 컨테이너이며 균형 이진트리로 구현되므로 균형 이진트리의 모든 특징을 가진다. * 모든 연관 컨테이너는 같은 인터페이스 (생성자, 멤버함수, 연산자)를 제공한다. * 특정 정렬 기준(조건자)에 따라 원소를 자동 정렬한다. 기본 정렬 기준은 less조건자 이다.(오름차순 / 연산의 결과로 모든 노드의 부모노드는 왼쪽 자식보다 크고 오른쪽 자식노드보다 작다) * 반복자의 탐색순서는 inorder 이진 트리 탐색을 사용한다.(중위순회)
-
평행이동 & 척도변환@ 16. 1 ~ 17. 1/기초수학과 물리 2014. 4. 17. 22:10
덧셈을 이용한 2차원 평행이동 [x'] = [x] + [dx] [y'] [y] + [dy] 곱셈을 이용한 2차원 평행이동 x의 변화량이 dx y의 변화량이 dy [x'] [1 0 dx][x] [y'] = [0 1 dy][y] [1] [0 0 1 ][1] * 1은 동차좌표이다. 평행이동만을 원할 떄는 행렬의 합을 쓰면된다. 하지만 한 물체에 대해 축척, 회전 등의 변환도 한꺼번에 하고자 한다면 행렬의 곱을 사용해야한다. * 행렬의 덧셈을 이용한 평행이동이 훨씬 간단하고 빠르다.(값은 같다. 평행이동이라면..) 척도 변환 행렬의 곱셈은 등장하는 물체의 크기를 바꿀 때도 사용할 수 있습니다. 2차원 척도변환 Sx는 x방향의 축척, Sy가 y방향의 축척일때 [x'] [Sx 0 0][x] [y'] = [0 Sy ..
-
deque & list 컨테이너@ 16. 1 ~ 17. 1/STL 2014. 4. 16. 23:07
deque 컨테이너는 vector 컨테이너와 기능과 동작이 가장 비슷한 컨테이너로 시퀀스 컨테이너이며 배열기반 컨테이너이다. 둘중에 차이점은 메모리 블록 할당 정책이다. vector의 장점이나 단점인 하나의 메모리 블록 할당 정책은 배열처럼 정수 연산만으로 원소에 접근하고 빠르게 값을 읽고 쓸 수 있다. 하지만 새로운 원소가 추가될 때 메모리 재할당과 이전 원소 복사 문제가 발생하여 성능이 저하될 수 있다. (메모리 삭제 -> 메모리 할당 -> 원소복사 반복..) 그래서 deque는 이처럼 vector의 단점을 해결하기 위해 여러 개의 메모리 블록을 할당하고 사용자에게는 하나의 블록처럼 보이게 한다. 즉 메모리 부족할 때마다 일정한 크기의 새로운 메모리 블록을 할당하여 이전 메모리를 제거하거나 이전 원소..
-
행렬연산@ 16. 1 ~ 17. 1/기초수학과 물리 2014. 4. 16. 22:26
행렬이란 가로와 세로로 나열된 수의 집합입니다. 수를 저장한다는 제약만을 가진 일종의 배열입니다. 1 2 3 A = 4 5 6 7 8 9 행렬 표기에는 언제나 행이 첫번째 그 다음이 열입니다. 이 행렬의 차수는 3x3 이다 세개의 행과 세개의 열이 있기 때문입니다. 행렬의 상동 조건 1. 두 행렬의 차수가 같다. 2. 모든 상응하는 원소가 같다. 행렬의 합과 차 행렬의 합 크기가 같은 두 행렬에 대하여 각 상응하는 원소의 합을 구한다. 두 행렬을 더할때는 항상 두 행렬의 크기가 같아야 한다는 점을 명심해야합니다.(상동) 행렬의 차 크기가 같은 두 행렬에 대하여 각 상응하는 원소의 차를 구한다. 두 행렬의 차를 손으로 구할때는 + -부호가 혼동될수 있으나 두 번쨰 행렬의 부호를 바꾸어 더한다고 생각하면 쉽..
-
벡터의 내적 & 외적@ 16. 1 ~ 17. 1/기초수학과 물리 2014. 4. 15. 22:32
벡터의 내적 두 벡터 사이의 각 임의의 두 벡터 A, B사이의 각을 Θ라 하면 A●B = ||A||B||cosΘ 예) 현재 움직이고 있는 방향을 나타내는 벡터가 C=[5 2 -3]인데 벡터 D=[8 1 -4]가 가리키는 방향으로 움직이고자 한다. 현재 벡터C와 원하는 벡터D사이의 각은 얼마인가? 1. 먼저 C●D를 구하고 5(8) + 2(1) + (-3)(-4) = 54 2. 이제 위의 공식을 적용하려면 벡터의 크기를 구한다||A||B|| ||C||=√5^2 + 2^2 + (-3)^2 = √38 ||D||=√8^2 + 1^2 + (-4)^2 = √81 그 다음에 Θ를 구하기 위해 구한 값을 공식에 대입한다. C●D = ||C||D||cosΘ 54 = √38(√81)cosΘ 54/√38(√81) = cos..
-
컨테이너 & 반복자 & 알고리즘 & 함수객체@ 16. 1 ~ 17. 1/STL 2014. 4. 10. 23:55
컨테이너 표준 시퀀스 컨테이너 : 컨테이너 원소가 자신만의 삽입 위치를 가지는 컨테이너(vector, deque, list : 선형적) : 삽입되는 순서에 따라 원소의 위치가 결정되고 바뀌지 않습니다. 표준 연관 컨테이너 : 저장 원소가 삽입 순서와 다르게 특정 정렬 기준에 의해 자동 정렬되는 컨테이너(set, multiset, map, multimap : 비선형적) : 삽입 순서와 상관없이 정렬 기준에 따라 원소의 위치가 결정됩니다. 또한 컨테이너는 데이터를 하나의 연속한 메모리 단위로 저장하느냐에 따라 두 가지로 나뉜다. 배열 기반 컨테이너 : 데이터 여러개가 하나의 메모리 단위에 저장(vector, duque) 노드 기반 컨테이너 : 데이터 하나를 하나의 메모리 단위에 저장(list, set, mu..
-
벡터의 스칼라 곱@ 16. 1 ~ 17. 1/기초수학과 물리 2014. 4. 10. 22:42
극좌표 형식으로 표현된 벡터를 사용할때는 오직 크기와 방향이 주어졌다는것을 의미하고 벡터에 스칼라를 곱하는 것은 크기를 늘리거나 줄이는 결과를 가져옵니다. 곱하는 스칼라가 1보다 크다면, 벡터의 크기는 커지고 스칼라가 1보다 작다면 벡터의 크기는 작아집니다. 극좌표 형식 벡터의 스칼라 곱 임의의 벡터 A = c||A||@Θ에 대하여 cA=c||A||@Θ 예제) 벡터 A = 3ft@22도 일떄 5A를 구하십시오 5A = 5(3ft)@22도 = 15ft@22도 데카르트 형식 벡터의 스칼라 곱 임의의 스칼라 c와 임의의 벡터 A=ai + a2j에 대하여 cA=c1i+c2j 예제) 벡터 A=12i + 4j 일떄 1/2A를 구하십시오 1/2A=1/2(12i) + 1/2(4j) = 6i + 2j 프로그래밍에서 정규..
-
백터의 합과 차@ 16. 1 ~ 17. 1/기초수학과 물리 2014. 4. 10. 22:28
두 벡터 A = a1i + a2j B = b1i + b2j에 대하여 A + B = (a1 + b1)i + (a2 + b2)j 두 벡터의 합을 계산하기 두 벡터 C = 8i + 3j, D = 5i + 12j 에 대하여 C + D를 구하십시오. (8+5)i = (3+12)j = 13i + 15j 극좌표를 사용할 생각이라면 두 벡터를 더하기전에는 먼저 데카르트 좌표로 변환해야합니다. 3차원에서도 그대로 적용되며 합을 계산하려면 벡터는 반드시 데카르트 좌표 형식이어야 합니다. 벡터의 차계산도 똑같습니다. A = a1i + a2j B = b1i + b2j에 대하여 A -B = (a1 - b1)i + (a2 - b2-)j