Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में वेक्टर से सबवेक्टर कैसे प्राप्त करें?

यह C++ में वेक्टर से सबवेक्टर प्राप्त करने का प्रोग्राम है।

एल्गोरिदम

शुरुआत
    s को वेक्टर s(vector const &v, int m, int n) के रूप में घोषित करें ताकि वेक्टर की शुरुआत और अंत की पोजीशन को कंस्ट्रक्टर में इनिशियलाइज़ किया जा सके
    auto first = v.begin() + m
    auto last = v.begin() + n + 1
    वेक्टर टाइप का वेरिएबल घोषित करें
    first और last पोजीशन के मान पास करें
    वेक्टर लौटाएं
    टेम्पलेट T घोषित करें
    show() फ़ंक्शन घोषित करें
    वेक्टर v के कंस्ट्रक्टर को पैरामीटर के रूप में पास करें
    for (auto i: v)
        वेरिएबल i का मान प्रिंट करें
    वेक्टर v घोषित करें
    v वेक्टर में मान इनिशियलाइज़ करें
    दो वेरिएबल a = 3, b = 6 इनिशियलाइज़ करें
    "सब वेक्टर है:" प्रिंट करें
    दूसरा वेक्टर sub_vector घोषित करें
    vector sub_vector = s(v, a, b) द्वारा v वेक्टर की शुरुआत और अंत की पोजीशन बताकर सब वेक्टर में मान इनिशियलाइज़ करें
    sub_vector के मान दिखाने के लिए show() फ़ंक्शन कॉल करें
समाप्ति

उदाहरण कोड

#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 << "सब वेक्टर है:" << endl;
    vector<int> sub_vector = s(v, a, b);
    show(sub_vector);
    return 0;
}

आउटपुट

सब वेक्टर है: 4 1 9 10

व्याख्या

इंडेक्स 3 से 6 तक के एलिमेंट्स (4, 1, 9, 10) को सबवेक्टर के रूप में निकाला गया है। ध्यान दें कि v.begin() + n + 1 का उपयोग किया गया है क्योंकि रेंज [first, last) होती है जहां last एक्सक्लूसिव होता है।

आधुनिक C++ (C++20) में रेंज का उपयोग

#include <iostream>
#include <vector>
#include <ranges>
using namespace std;

int main() {
    vector<int> v = {7, 6, 2, 4, 1, 9, 10, 15, 17};
    auto sub = v | views::drop(3) | views::take(4);
    for (auto i : sub) cout << i << " ";
    return 0;
}
  1. - C++ में वेक्टर से सबवेक्टर कैसे प्राप्त करें?

    यह C++ में वेक्टर से सबवेक्टर प्राप्त करने का प्रोग्राम है। एल्गोरिदम शुरुआत s को वेक्टर s(vector const &v, int m, int n) के रूप में घोषित करें ताकि वेक्टर की शुरुआत और अंत की पोजीशन को कंस्ट्रक्टर में इनिशियलाइज़ किया जा सके auto first = v.begin() + m auto last = v.begin() + n + 1

  1. - C++ में vector::resize() और vector::reserve() का अंतर

    वेक्टर में डायनामिक ऐरे की तरह खुद को ऑटोमैटिकली रीसाइज़ करने की क्षमता होती है। जब कोई एलिमेंट डाला या हटाया जाता है, तो कंटेनर अपने स्टोरेज को ऑटोमैटिकली संभालता है। vector::resize() और vector::reserve() के बीच मुख्य अंतर यह है कि resize() वेक्टर का साइज़ बदलने के लिए उपयोग किया जाता है जबकि rese

  1. - C++ में टाइप इन्फरेंस (प्रकार निगमन)

    टाइप इन्फरेंस या डिडक्शन का अर्थ है प्रोग्रामिंग भाषा में एक एक्सप्रेशन के डेटा टाइप का ऑटोमैटिक डिटेक्शन। यह कुछ स्ट्रॉन्गली स्टैटिकली टाइप्ड भाषाओं में मौजूद एक विशेषता है। C++ में, auto कीवर्ड (C++11 में जोड़ा गया) ऑटोमैटिक टाइप डिडक्शन के लिए उपयोग किया जाता है। उदाहरण के लिए, आप एक वेक्टर पर पु