यह 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;
}