C++ 벡터 개념
안녕하세요! 프라음블로그s 입니다.
평소에 코딩테스트를 준비하면서 C/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;
}
인덱스를 통한 원소 접근
#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++에서 제공하는 유연하고 편리한 동적 배열로, 크기를 실시간으로 조절하여 데이터를 효과적으로 관리할 수 있는 자료 구조라고 보시면 되겠습니다.
내용이 길어질것같아서 벡터 장단점, 특별히 사용되는 이유 또는 정확하게 배열과 어떤 차이점이 있는지 다음 글을 참고해주시면 도움이 될거라고 생각합니다.
감사합니다, 행복한 하루 되세요!~
'Computer Science > Programmers' 카테고리의 다른 글
[ 프로그래머스 ] 문자열 잘라서 정렬하기 JS, C++ 풀이 (1) | 2024.03.24 |
---|---|
[프로그래머스] 문자열 정렬하기 (1) Javascript C++ (0) | 2024.01.29 |
[프로그래머스] 주사위의 개수 Javascript, C++ (0) | 2024.01.25 |
[프로그래머스] 최댓값 만들기 (2) Javascript (1) | 2024.01.18 |
[ 프로그래머스 ] 가까운 1 찾기 C++, JS 풀이 (0) | 2024.01.17 |