C++의 Vector에서 부분 Vector 추출
이 게시물은 C++에서 Vector에서 부분 Vector를 추출하는 방법에 대해 설명합니다.
1. 범위 생성자 사용
범위 생성자는 지정된 범위의 모든 요소를 포함하는 새 Vector를 만듭니다. Vector에서 부분 Vector를 추출하려면 반복자를 부분 Vector의 시작 위치와 끝 위치에 전달하십시오. 이것은 아래에 설명되어 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <iostream> #include <vector> #include <algorithm> int main() { std::vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8}; int start = 2; int end = 4; std::vector<int> slice(v.begin() + start, v.begin() + end + 1); for (int &i: slice) { std::cout << i << ' '; } return 0; } |
결과:
2 3 4
2. 사용 std::vector::insert
기존 Vector의 경우 다음을 사용할 수 있습니다. std::vector::insert
대상 Vector에 대한 반복자와 Vector 요소의 범위를 지정하는 반복자를 취하는 멤버 함수. 이 함수에 대한 일반적인 호출은 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> #include <vector> #include <algorithm> int main() { std::vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8}; int start = 2; int end = 4; std::vector<int> slice; slice.insert(slice.begin(), v.begin() + start, v.begin() + end + 1); for (int &i: slice) { std::cout << i << ' '; } return 0; } |
결과:
2 3 4
3. 사용 std::copy
또 다른 옵션은 std::copy
지정된 범위의 모든 요소를 다른 Vector로 복사하는 표준 알고리즘입니다. 코드는 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> #include <vector> #include <algorithm> int main() { std::vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8}; int start = 2; int end = 4; std::vector<int> slice; std::copy(v.begin() + start, v.begin() + end + 1, std::back_inserter(slice)); for (int &i: slice) { std::cout << i << ' '; } return 0; } |
결과:
2 3 4
4. 사용 std::vector::assign
마지막으로, 우리는 사용할 수 있습니다 std::vector::assign
Vector 내용을 지정된 범위의 요소로 바꾸는 멤버 함수입니다. 다음 C++ 프로그램은 이를 보여줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> #include <vector> #include <algorithm> int main() { std::vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8}; int start = 2; int end = 4; std::vector<int> slice; slice.assign(v.begin() + start, v.begin() + end + 1); for (int &i: slice) { std::cout << i << ' '; } return 0; } |
결과:
2 3 4
이것이 C++의 Vector에서 부분 Vector를 추출하는 것입니다.