vector 오브젝트의 size와 capacity, 그리고 reserve 메소드 이전 게시글에서 벡터의 시간 복잡도 Time complexity에 대하여 다뤘다. 벡터의 마지막에 삽입/제거할 경우에는 O(1) 의 Time Complexity를 가진다고 이야기했다. 하지만 이런 O(1)의 시간 복잡도는 항상 보장되는 것이 아니다. 실제로는 가끔 O(n) 의 시간 복잡도를 가지게 된다. 예시를 통해 간단히 살펴보면, #include #include int main() { std::vector nums; std::cout
벡터
연속적인 메모리 공간을 heap에 가질 수 있는 벡터 컨테이너에 대해 조금 더 알아보자. Cppreference에서 vector를 검색해보면 time complexity에 대한 내용이 나온다. https://en.cppreference.com/w/cpp/container/vector std::vector - cppreference.com template class vector; (1) (2) (since C++17) 1) std::vector is a sequence container that encapsulates dynamic size arrays. The elements are stored contiguously, wh..
벡터란? : std::vector is a sequence container that encapsulates dynamic size arrays. 벡터는 연속적인 컨테이너인데 dynamic size array를 캡슐화 한 것 이란 뜻이다. Dynamic size array를 벡터를 사용하지 않고 만드는 법은 cpp를 어느정도 공부했다면 알고 있을 것이다. int main() { int* numsPtr = new int[5]; for (int i = 0; i < 5; i++) { numsPtr[i] = i; } delete numsPtr; }; 이렇게 int형 포인터를 만들고 for문을 통해 숫자를 넣어주고 delete를 통해 할당 해제해주면 된다. 그림으로 보면, 스택 위에 numsptr이란 포인터가 만..
*벡터의 내적에 대한 자세한 설명은 인터넷에 잘 정리된 글이 많기 때문에 설명하지 않겠습니다. 여기서는 핵심 정리만 하고 예제를 한두개만 살펴보도록 할 겁니다. 벡터의 내적 Dot값 계산하기 언리얼 엔진의 DOT 노드는 벡터의 내적을 말합니다. Dot을 치면 바로 나옵니다. Dot 은 말 그대로 곱셈입니다. 벡터 x y z 값에 임의의 숫자를 입력해 보겠습니다. 결과값은, X = 5 * 2 = 10 Y = 4 * 3 = 12 Z = 2 * 4 = 8 최종적으로 Dot의 결과값(float)은 10 + 12 + 8 = 30 이 됩니다. 그렇다면 이 Dot은 언제 유용할까? 그 전에 우리가 알고 있는 것들을 정리해보면, 이 정리를 활용해서, 영벡터가 아닌 두 벡터가 수직일 때 이므로 이다. 따라서 언리얼 엔진..