2024
11.20

 

1. iterator 기반으로 새로운 vector 선언하기

새로운 벡터를 선언하면서 기존 벡터의 iterator 시작과 끝을 넣어주면된다.

end가 끝점을 포함하지 않는다는 점에 주의.

std::vector<int> original = {1, 2, 3, 4, 5, 6, 7};
int start = 2; // 시작 인덱스 (0부터 시작)
int end = 5;   // 끝 인덱스 (포함하지 않음)

// 부분 벡터 생성
std::vector<int> subvector(original.begin() + start, original.begin() + end);

 

2. std::ranges::subrange 로 부분 추출하기 (C++ 20)

cppreference : std::ranges::subrange
https://en.cppreference.com/w/cpp/ranges/subrange

 

<ranges> 헤더에 정의됨. 시작과 끝 iterator를 입력하면 된다. 

std::vector<int> original = {1, 2, 3, 4, 5, 6, 7};
auto sliced = std::ranges::subrange(original.begin() + 2, original.begin() + 5);