यहां हम देखेंगे कि C++ में Output iterators क्या हैं। आउटपुट इटरेटर्स में कुछ गुण होते हैं। ये नीचे की तरह हैं:
- आउटपुट इटरेटर्स का उपयोग कंटेनरों के मूल्य को संशोधित करने के लिए किया जाता है।
- हम इस तरह के इटरेटर का उपयोग करके कंटेनर से डेटा नहीं पढ़ सकते हैं
- यह वन-वे है और केवल इटरेटर लिखें
- इसे बढ़ाया जा सकता है, लेकिन घटाया नहीं जा सकता।
- आउटपुट इटरेटर्स के दो उप-भाग होते हैं। ये इन्सर्ट इटरेटर और ओस्ट्रीमिटरेटर हैं।
द इंसर्ट इटरेटर
कंटेनर के अंदर कुछ तत्व डालने के लिए इन्सर्ट इटरेटर का उपयोग किया जाता है। इस प्रकार के इटरेटर पर असाइनमेंटऑपरेटर वर्तमान स्थिति में नया तत्व सम्मिलित करता है। इंसर्टेटरेटर का सिंटैक्स नीचे जैसा है:
template<class Container, class Iterator> insert_iterator<container> inserter(Container &x,Iterator it);
यह इटरेटर दो पैरामीटर लेता है, x और यह। एक्स कंटेनर है, जिस पर इटरेटर काम करेगा। दूसरा तर्क एक पुनरावृत्त वस्तु है, जो उस स्थिति को इंगित कर रहा है जिसे संशोधित किया जाना है।
उदाहरण कोड
#include <iostream> #include <iterator> #include <vector> #include <algorithm> using namespace std; int main () { vector<int> vec1,vec2; for (int i=1; i<=10; i++) { //insert elements into vectors vec1.push_back(i); vec2.push_back(i+3); } vector<int>::iterator it = vec1.begin(); //iterator works on vector1 advance (it,5); //advance it to 5 position copy (vec2.begin(),vec2.end(),inserter(vec1,it)); cout<<"Elements of vec1 are :"; for ( it = vec1.begin(); it!= vec1.end(); ++it ) cout << ' ' << *it; cout << endl; return 0; }
आउटपुट
Elements of vec1 are : 1 2 3 4 5 4 5 6 7 8 9 10 11 12 13 6 7 8 9 10
ओस्ट्रीम इटरेटर
ostream iterator का उपयोग आउटपुट स्ट्रीम जैसे cout को लिखने के लिए किया जाता है। ostreamiterator को basic_ostream ऑब्जेक्ट का उपयोग करके बनाया जा सकता है। जब इस प्रकार के इटरेटर के साथ असाइनमेंट ऑपरेटर का उपयोग किया जाता है, तो यह आउटपुट स्ट्रीम में नया तत्व सम्मिलित करता है। सिंटैक्स नीचे जैसा है।
template<class T, class charT=char, class traits=char_traits<charT>> class ostream_iterator;
ओस्ट्रीम इटरेटर वर्ग के सदस्य कार्य नीचे की तरह हैं।
ostream_iterator<T, charT, traits>& operator=(const T& value); ostream_iterator<T, charT, traits>& operator*(); ostream_iterator<T, charT, traits>& operator++(); ostream_iterator<T, charT, traits>& operator++(int);
पैरामीटर हैं:टी। यह उन तत्वों का प्रकार है जिन्हें डाला जाएगा, चार्ट, यह उस प्रकार के तत्व हैं जिन्हें ओस्ट्रीम संभाल सकता है, और लक्षण। ये चरित्र लक्षण हैं जिन्हें धारा द्वारा नियंत्रित किया जा सकता है।
उदाहरण कोड
#include <iostream> #include<iterator> #include<vector> #include<algorithm> using namespace std; main() { vector<int> vector; for(int i=1;i<=10;i++) vector.push_back(i*i); //make square and insert ostream_iterator<int> out(cout,","); copy(vector.begin(),vector.end(),out); }
आउटपुट
1,4,9,16,25,36,49,64,81,100,
एक और उदाहरण,
उदाहरण कोड
#include <iostream> #include<iterator> #include<vector> #include<algorithm> using namespace std; main() { ostream_iterator<int> os_out(cout,","); *os_out = 10; os_out++; //point to next *os_out = 20; os_out++; *os_out = 30; }
आउटपुट
10,20,30,