모던C++/벡터, 배열 Vector, Array

벡터의 for loop 일반적으로 for loop문을 돌리는 방법에는 3가지가 있다. 1. Index 2. Iterator 3. Ranged based for loop (C++ 11) 이 세가지 방법 중에서 Iterator와 Ranged based for loop는 비슷한 구조로 돌아간다. 결론부터 말하면 ranged based for loop이 가장 안전하고 표준의 방법이다. 하지만 for loop 안에서 Index 정보가 필요하다면 Index를 사용한 for loop문을 사용해야 하는 경우도 있다. 예제 "how many elements?" 가 출력된 후에 입력을 받고, 입력을 받으면 입력된 수 n 개의 숫자 1이 들어가 있는 벡터를 만들어 주었다. 각 elelment에 2를 곱해주는 Index 베이..
vector 오브젝트의 size와 capacity, 그리고 reserve 메소드 이전 게시글에서 벡터의 시간 복잡도 Time complexity에 대하여 다뤘다. 벡터의 마지막에 삽입/제거할 경우에는 O(1) 의 Time Complexity를 가진다고 이야기했다. 하지만 이런 O(1)의 시간 복잡도는 항상 보장되는 것이 아니다. 실제로는 가끔 O(n) 의 시간 복잡도를 가지게 된다. 예시를 통해 간단히 살펴보면, #include #include int main() { std::vector nums; std::cout
emplace_back() 사용하세요 c++ 벡터를 사용해 왔던 개발자 지망생들이라면 push_back() 을 많이 사용해 왔을 것이다. 결론부터 말하자면 그냥 모든 경우에서 emplace_back()을 사용하는 것이 좋다. 이름과 나이를 가지고 있는 고양이 클래스를 정의하고, 고양이 array를 가지고 있는 cats 를 만들어 보자. #include #include class Cat { public: Cat(std::string name, int age) :mName{ std::move(name) }, mAge{ age }{}; void speak() const { 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이란 포인터가 만..
HeadlessCreator
'모던C++/벡터, 배열 Vector, Array' 카테고리의 글 목록