C++에서 벡터를 자른다는 것은
vector의 일부 구간만 가져와 새로운 벡터를 만드는 것을 의미한다.
주로 코딩테스트에서 배열의 일부만 처리하거나, 특정 구간을 분리할 때 자주 사용된다.
1. 기본 개념
벡터는 인덱스를 이용해 원하는 위치에 접근할 수 있다.
vector<int> v = {1, 2, 3, 4, 5};
값: 1 2 3 4 5
인덱스: 0 1 2 3 4
2. 사용 방법
벡터 일부를 자를 때는 반복자(iterator) 를 사용한다.
vector<int> newV(v.begin() + 시작인덱스, v.begin() + 끝인덱스);
여기서 중요한 점은 범위가 다음과 같다는 것이다.
[시작인덱스, 끝인덱스)
즉, 시작 인덱스는 포함, 인덱스는 포함하지 않음
3. 기본 예제
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v = {1, 2, 3, 4, 5};
vector<int> cut(v.begin() + 1, v.begin() + 4);
for(int i : cut)
cout << i <<; //결과값: 234
return 0;
}
- v.begin() + 1은 인덱스 1을 의미하고,
- v.begin() + 4는 인덱스 4 전까지를 의미한다.
- 따라서 실제로 잘리는 구간은 인덱스 1 ~ 3이다.
- 단, 원본 백터 v는 그대로다. => 새로운 cut 변수 설정해서 잘라준 것
4. 최종 요약
C++에서 벡터 자르기는 반복자를 이용해 원하는 구간만 새로운 벡터로 만드는 방식이다. 기본 형태는 다음과 같다.
vector<int> newV(v.begin() + 시작인덱스, v.begin() + 끝인덱스);
- 범위는 시작은 포함, 끝은 미포함이다. (참고) [C++] reverse() 함수 정리 <- reverse 함수도 시작범위 포함, 끝 미포함
vector<int> cut(v.begin() + 1, v.begin() + 4);
- 위 코드는 인덱스 1 ~ 3까지 가져오므로 결과는 다음과 같다.
2 3 4
'언어 문법정리 > c++' 카테고리의 다른 글
| [C++] 정규표현식 regex란? (0) | 2026.05.19 |
|---|---|
| [C++] reverse() 함수 정리 (0) | 2026.05.16 |
| [C++] 대소문자 변환 방법 정리(함수, ASCII 코드 사용) (0) | 2026.05.11 |
| [C++] 숫자를 문자열로 변환(123 => "123") to_string() 함수 (1) | 2026.05.09 |
| [C++] max() 함수란? (0) | 2026.05.08 |
