화살표 연산자 2

C2678 : 이항 '~': 왼쪽 피연산자로 '~' 형식을 사용하는 연산자가 없거나 허용되는 변환이 없습니다.

~는 내가 쓰던 코드에서 선언한 타입이었다. ~에는 쓴 코드에서 사용한 연산자와 타입이 올 것이다. 에러에 관한 이야기를 하기 전에 짚고 넘어 가야 할 중요한 사실이 있는데 C++에서 const를 요구하는 인자에 non-const를 넘기는 것은 괜찮지만 non-const를 요구하는 곳에 const를 쓰면 에러가 생긴다(https://erlerobotics.gitbooks.io/erle-robotics-cpp-gitbook/content/advanced_topics_i/const_and_non-const.html) 예를 들어서 우리가 흔히 쓰는 복사 생성자는 인자로 const reference 타입을 받지만 인자로 넘겨줄 객체를 const로 선언하지 않아도 에러가 생기지 않는다. 예를 들어서 class A..

공부/그 외 2021.09.02

이진 탐색 트리(Binary Search Tree), 화살표 연산자 오버로딩(-> operator overloading, arrow operator overloading)

이진 탐색 트리 규칙 : 작으면 왼쪽, 크면 오른쪽 전위 순회(preorder traversal) : root -> left -> right 순서 중위 순회(inorder traversal) : left -> root -> right 순서 후위 순회(postorder traversal) : left -> right -> root 순서 완전 이진 트리(Complete binary tree) : 마지막 레벨 빼고 모두 차있는 경우 포화 이진 트리(perfect binary tree) : 마지막 레벨까지 모두 차있는 경우 편향 트리(skewed binary tree) : 한쪽으로만 자라는 tree. 예를 들어 아래와 같은 tree insert, find는 현재 노드보다 큰지, 작은지에 따라 좌우 케이스로 나눠..