นี่คือโปรแกรม C++ สำหรับดึง subvector (ส่วนย่อยของ vector) จาก vector ใน C++
อัลกอริทึม
เริ่มต้น
ประกาศฟังก์ชัน s(vector const &v, int m, int n) สำหรับกำหนดตำแหน่งเริ่มต้นและสิ้นสุด
auto first = v.begin() + m
auto last = v.begin() + n + 1
ประกาศ vector ชนิด vector
ส่งค่า first และ last ไปยัง constructor
คืนค่า vector
ประกาศ template T
ประกาศฟังก์ชัน show()
ส่ง constructor ของ vector v เป็นพารามิเตอร์
for (auto i: v)
แสดงค่าของตัวแปร i
ประกาศ vector v
กำหนดค่าเริ่มต้นใน v vector
กำหนดตัวแปร a = 3, b = 6
แสดง "Sub vector is: "
ประกาศ vector sub_vector
sub_vector = s(v, a, b) เพื่อดึงค่าจากตำแหน่งเริ่มต้นถึงสิ้นสุดของ vector v
เรียกฟังก์ชัน show() เพื่อแสดงค่าของ sub_vector
สิ้นสุด
ตัวอย่างโค้ด
#include <iostream>
#include <vector>
using namespace std;
template<typename T>
vector<T> s(vector<T> const &v, int m, int n) {
auto first = v.begin() + m;
auto last = v.begin() + n + 1;
vector<T> vector(first, last);
return vector;
}
template<typename T>
void show(vector<T> const &v) {
for (auto i: v) {
cout << i << ' ';
}
cout << '\n';
}
int main() {
vector<int> v = {7, 6, 2, 4, 1, 9, 10, 15, 17};
int a = 3, b = 6;
cout << "Sub vector is:" << endl;
vector<int> sub_vector = s(v, a, b);
show(sub_vector);
return 0;
}
ผลลัพธ์
Sub vector is: 4 1 9 10