정적배열(Array)
int a[10];
array<int, 10> a;
int a[10];
int a2[3] = {1, 2, 3};
int a3[] = {1, 2, 3, 4};
- 연속된 메모리 공간에 위치한다. → 숫자 인덱스를 기반으로 랜덤접근이 가능하다.
- 같은 타입만 저장이 가능하다.
- 중복을 허용한다.
- vector 와 달리 메서드가 없다.
동적배열(Vector)
#include <bits/stdc++.h>
using namespace std;
vector<int> v;
int main() {
for(int i = 1; i <= 10; i++) v.push_back(i);
for(int a : v) cout << a << " ";
cout << "\n"
for(int i = 0; i < v.size(); i++) {
cout << &v[i] << '\n';
}
v.pop_back();
e.erase(v.begin(), v.begin() + 3);
auto a = find(v.begin(), v.end(), 100);
if(a == v.end()) cout << "not found" << "\n";
fill(v.begin(), v.end(), 10);
v.clear();
}
- 컴파일 시점에서 사용해야 할 요소들의 개수를 모를때 사용
- 연속된 메모리 공간에 같은 타입의 요소들을 저장(중복 허용) → 숫자 인덱스로 랜덤 접근 가능
- 메서드 지원
- Python/Java
append()
, JS push()
, C++ push_back()

- 참조 O(1)
- 탐색 O(n)
- 특정 요소를 찾을 때 배열의 첫번째 요소부터 순차적으로 탐색한다.
- 맨 끝, 앞에 삽입/삭제 O(1)
- 중간에 삽입/삭제 O(n)
- 벡터도 정적 할당이 가능하다.
vector<int> v(5, 100);