- array와 vector가 비슷하게 느껴져서 두 객체의 차이에 대해 정리하려고 함
★ 요약 정리
항목 | array (정적 배열) | vector (동적 배열) |
크기 | 컴파일 타임에 고정 | 런타임에 가변 (동적) |
헤더파일 | <array> | <vector> |
메모리 | 스택에 저장됨 (일반 배열) | 힙에 저장됨 (동적 메모리 할당) |
리사이즈 | 불가능 | push_back(), resize() 등으로 가능 |
초기화 | {1, 2, 3} or int arr[5] | {1, 2, 3} or vector<int> v(3) |
성능 | 빠르고 가볍지만 유연성 부족 | 약간 느릴 수 있지만 유연함 |
사용 시기 | 크기 변경이 필요 없을 때 | 요소 개수가 동적으로 바뀔 때 |
안전성 | 일반 배열은 경계 검사 없음 | at() 사용 시 범위 검사 가능 |
★ 공통점
- 연속된 메모리 공간 사용
- 인덱스로 접근 가능
- ex) arr[i], vec[i]
- 동일한 데이터형으로만 이루어짐
★ 사용 예시
- array 사용 예시
#include <iostream>
int main()
{
using namespace std;
int scores[5] = {90, 85, 88, 92, 75}; // 정적 배열 (스택 메모리)
for (int i = 0; i < 5; ++i)
{
cout << "Score " << i << ": " << scores[i] << endl;
}
return 0;
}
- vector 사용 예시
#include <iostream>
#include <vector>
int main()
{
using namespace std;
vector<int> scores; // 빈 벡터 생성
// 점수를 동적으로 추가
scores.push_back(90);
scores.push_back(85);
scores.push_back(88);
for (int i = 0; i < scores.size(); ++i)
{
cout << "Score " << i << ": " << scores[i] << endl;
}
return 0;
}
'C++' 카테고리의 다른 글
[C++] vector 함수 - size | capacity | resize | reserve (0) | 2025.05.06 |
---|---|
[C++] 주요 vector 함수 (0) | 2025.05.06 |
[C++] 파일 입출력 (.txt 파일) (0) | 2025.05.05 |
[C++] cin.fail() | cin.clear() | cin.ignore() (0) | 2025.05.05 |
[C++] 문자열 | string을 전달인자로 하는 함수 (0) | 2025.05.02 |