본문 바로가기
Computer Science/Programmers

[C++] vector 벡터 사용법 / 장단점 / 쓰는이유

by 기억보다 기록을 2024. 3. 11.
반응형

 

c++ vector

 

 

 


 

 

 

C++ 벡터 개념


안녕하세요! 프라음블로그s 입니다.

 

평소에 코딩테스트를 준비하면서 C/C++ 문제들 나오면 배열 대신 벡터 나오는 경우 많습니다. 그래서 오늘 벡터 개념, 어떤 장점이나 단점 있는지, 배열 대신 왜 쓰는지를 정리해보록 하겠습니다. 중간 중간에 관련 이미지와 예제도 같이 공유해서 재미있게 읽어봐주시면 감사하겠습니다.

 

그럼 시작해보겠습니다.

 

 

 

c++ vector

 

 


 

 

 

C++에서 사용하는 벡터는 동적 배열으로, 크기를 동적으로 조절할 수 있는 데이터 구조입니다. 여기서 몇 가지 중요한 개념을 자세히 살펴보겠습니다. 우선 벡터는 배열과 비슷하지만, 배열과는 달리 크기를 미리 지정하지 않고 동적으로 조절할 수 있습니다. 즉, 프로그램 실행 중에 필요에 따라 배열의 크기를 늘리거나 줄일 수 있습니다.  어려운 코딩 테스트에서 제일 많이 사용되는 이유 중 하나입니다.

 

또는 벡터는 사용자가 데이터를 추가하거나 제거할 때 자동으로 크기를 조절합니다. 크기를 동적으로 조절함으로써 메모리를 효율적으로 활용할 수 있습니다. 원래 배열은 컴파일 시에 크기를 고정해야 하지만 벡터는 선언 시 크기를 지정하지 않아도 됩니다. 따라서 실행 중에 필요에 따라 크기를 조절할 수 있어 더 유연한 데이터 구조를 제공합니다.

 

 

 

c++ 벡터

 

 

 

 

 

추가적으로 벡터의 각 원소는 인덱스를 사용하여 접근할 수 있습니다. 예를 들어, myVector[0]은 첫 번째 원소를 나타냅니다. 좀더 자세히 설명드리면  배열은 선언할 때 크기를 지정하며, 이 크기는 컴파일 시에 고정됩니다. 배열의 크기를 변경하려면 새로운 배열을 생성하고 데이터를 복사해야 합니다. 그렇지만 벡터는 동적으로 크기를 조절할 수 있습니다. 필요에 따라 원소를 추가하거나 삭제할 수 있고, 이로 인해 벡터의 크기가 동적으로 변합니다.

벡터는 다양한 멤버 함수들을 제공합니다. 예를 들어, push_back 함수를 사용하여 원소를 벡터의 끝에 추가할 수 있고, pop_back 함수로 마지막 원소를 삭제할 수 있습니다. 생각보다 간단하게 진행되는 장점이 있습니다. 벡터는 데이터 크기가 동적으로 변하는 상황에서 특히 유용합니다. 예를 들어, 데이터를 동적으로 수집하거나 다룰 때 효과적으로 사용할 수 있습니다.

 

 


 

 

 

 

개념을 잘 보셨다면 이제  벡터에서 자주 사용되는 핵심 기능 중 일부를 예제 코드로 보여드리겠습니다.

벡터 선언과 초기화

#include <vector>

// 빈 벡터 선언
vector<int> myVector;

// 초기값을 갖는 벡터 선언
vector<int> myVectorWithValues = {1, 2, 3, 4};

 

 


 

 

원소 추가 및 삭제

#include <vector>
#include <iostream>

int main() {
    vector<int> myVector = {1, 2, 3};

    // 원소 추가
    myVector.push_back(4);

    // 원소 삭제 (마지막 원소)
    myVector.pop_back();

    // 결과 출력
    for (int value : myVector) {
        cout << value << " ";
    }
    
    return 0;
}

 

 

 

 

c++ vector

 

 

 


 

 

인덱스를 통한 원소 접근

#include <vector>
#include <iostream>

int main() {
    vector<int> myVector = {10, 20, 30};

    // 인덱스를 통한 원소 접근
    int value = myVector[1];

    // 결과 출력
    cout << "두 번째 원소: " << value ;

    return 0;
}

 

 

 


 

 

벡터 크기 확인

#include <vector>
#include <iostream>

int main() {
    vector<int> myVector = {5, 10, 15, 20};

    // 벡터 크기 확인
    cout << "벡터 크기: " << myVector.size();

    return 0;
}

 

 


 

 

 

벡터의 모든 원소 출력

#include <vector>
#include <iostream>

int main() {
    vector<int> myVector = {1, 2, 3, 4, 5};

    // 벡터의 모든 원소 출력
    for (int value : myVector) {
        cout << value << " ";
    }

    return 0;
}

 

 

 

c++ 예제

 

 

 

 

 

 


 

결론


오늘 C++ 에서 자주 사용되는 벡터 배워봤습니다. 개념부터 간단한 예시까지 정리해봤더니 이야기 좀 끌었습니다. 

간단하게 다시 한번 설명드리면 벡터는 C++에서 제공하는 유연하고 편리한 동적 배열로, 크기를 실시간으로 조절하여 데이터를 효과적으로 관리할 수 있는 자료 구조라고 보시면 되겠습니다.

 

내용이 길어질것같아서 벡터 장단점, 특별히 사용되는 이유 또는 정확하게 배열과 어떤 차이점이 있는지 다음 글을 참고해주시면 도움이 될거라고 생각합니다. 

 

감사합니다, 행복한 하루 되세요!~

 

 


 

 

감사합니다.

 

반응형