কম্পিউটার

C++ এ আউটপুট ইটারেটর


এখানে আমরা C++ এ আউটপুট ইটারেটর কি কি তা দেখব। আউটপুট পুনরাবৃত্তিকারীদের কিছু বৈশিষ্ট্য রয়েছে। এগুলো নিচের মত:

  • আউটপুট পুনরাবৃত্তিকারীগুলি কন্টেইনারগুলির মান পরিবর্তন করতে ব্যবহৃত হয়।
  • আমরা এই ধরনের পুনরাবৃত্তিকারী ব্যবহার করে কন্টেইনার থেকে ডেটা পড়তে পারি না
  • এটি ওয়ান-ওয়ে এবং শুধুমাত্র পুনরাবৃত্তিকারী লিখুন
  • এটা বাড়ানো যায়, কিন্তু কমানো যায় না।
  • আউটপুট পুনরাবৃত্তিকারীর দুটি উপ-অংশ রয়েছে। এগুলো হল Insert Iterator এবং ostreamiterator.

ঢোকানো ইটারেটর

সন্নিবেশ পুনরাবৃত্তিকারী ধারক ভিতরে কিছু উপাদান সন্নিবেশ ব্যবহার করা হয়. এই ধরনের পুনরাবৃত্তিকারীর অ্যাসাইনমেন্ট অপারেটর বর্তমান অবস্থানে নতুন উপাদান সন্নিবেশ করায়। সন্নিবেশকারীর সিনট্যাক্স নীচের মত:

template<class Container, class Iterator>
insert_iterator<container> inserter(Container &x,Iterator it);

এই পুনরাবৃত্তিকারী দুটি পরামিতি লাগে, x এবং এটি। 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 তৈরি করা যেতে পারে। যখন অ্যাসাইনমেন্ট অপারেটরটি এই ধরণের পুনরাবৃত্তিকারীর সাথে ব্যবহার করা হয়, তখন এটি আউটপুট স্ট্রীমে নতুন উপাদান সন্নিবেশ করে। সিনট্যাক্স নিচের মত।

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);

পরামিতিগুলি হল:T. এটি এমন উপাদানগুলির ধরন যা সন্নিবেশ করা হবে, চার্ট, এটি হল উপাদানগুলির প্রকার যা ওস্ট্রিম পরিচালনা করতে পারে এবং বৈশিষ্ট্যগুলি। এগুলি চরিত্রের বৈশিষ্ট্য যা স্ট্রিম দ্বারা পরিচালনা করা যেতে পারে৷

উদাহরণ কোড

#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,

  1. C++ এ বাইনারি সার্চ ট্রি ইটারেটার

  2. C++ এ একটি হাইফেন দিয়ে স্থান প্রতিস্থাপন করা হচ্ছে

  3. C++ স্ট্রীম ক্লাস স্ট্রাকচার

  4. C++ এ একটি ফলিং ম্যাট্রিক্সের বাস্তবায়ন