Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การดึง Subvector จาก Vector ใน C++

นี่คือโปรแกรม 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