누에나방애벌레
C++ 배열과 벡터 본문
C++ 배열
C++에서 배열은 다음과 같은 특징을 가집니다:
- 정적 크기:
- 배열의 크기는 선언 시에 고정되며, 이후에 크기를 변경할 수 없습니다.
- 예: int arr[5] = {1, 2, 3, 4, 5};
- 데이터 추가 불가:
- 배열의 크기가 고정되어 있기 때문에, 새로운 데이터를 추가할 수 없습니다.
- 데이터 삭제:
- 배열의 특정 값을 삭제하려면, 해당 값을 의미 없는 값으로 변경해야 합니다.
- 예: arr[n-1] = 0; (0이 의미 없는 값일 때)
- 초기화:
- 배열을 초기화하려면, 반복문을 사용하거나 memset 함수를 사용합니다.
- 예: for(int i = 0; i < 5; i++) arr[i] = 0;
- CRUD 작업의 불편함:
- 배열을 사용한 CRUD(Create, Read, Update, Delete) 작업은 불편합니다.
- 배열은 크기 변경이 불가능하고, 동적 할당이 지원되지 않아 유연성이 부족합니다.
C++ 벡터(Vector)
벡터는 배열의 단점을 보완한 동적 배열로, 다음과 같은 특징을 가집니다:
- 동적 크기 조절:
- 벡터는 필요에 따라 크기가 동적으로 변경됩니다.
- 예: vector<int> v;
- 데이터 추가:
- push_back 메서드를 사용하여 벡터의 끝에 데이터를 추가할 수 있습니다.
- 예: v.push_back(1);
- 데이터 삭제:
- pop_back 메서드를 사용하여 벡터의 마지막 요소를 삭제할 수 있습니다.
- 예: v.pop_back();
- 초기화:
- clear 메서드를 사용하여 벡터를 초기화할 수 있습니다.
- 예: v.clear();
- 템플릿 문법:
- 벡터는 템플릿을 사용하여 다양한 데이터 타입을 저장할 수 있습니다.
- 예: vector<int> v;, vector<string> v2;, vector<struct Student> v3;
- 자주 사용되는 메서드:
- push_back(val): 벡터 끝에 값 추가
- pop_back(): 벡터 끝의 값 삭제
- clear(): 벡터 초기화
- size(): 벡터 크기 반환
- v[idx]: 배열처럼 인덱스로 접근
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v = {1, 2, 3};
v.push_back(4);
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << "\n";
v.pop_back();
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << "\n";
v.clear();
cout << "clear 이후 사이즈: " << v.size() << "\n";
return 0;
}
'공부 > c++' 카테고리의 다른 글
C++ 비트 연산하기 (0) | 2024.08.14 |
---|---|
C++에서 변수+1 vs 변수++ (0) | 2024.07.26 |
C++에서 다양한 정렬 기능 활용하기 (0) | 2024.07.26 |
C++ Iterator (0) | 2024.07.25 |
C 언어의 cstring과 C++의 string (0) | 2024.07.25 |