C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
C++ Output Iterator
Insert Iterator
Syntax
template<class Container, class Iterator> insert_iterator<container> inserter(Container &x,Iterator it); Parameters
x: It is the container on which the new element is to be inserted. it: It is an iterator object pointing to the position which is to be modified. Let's see a simple example:
#include <iostream> // std::cout
#include <iterator> // std::front_inserter
#include <vector> // std::list
#include <algorithm> // std::copy
using namespace std;
int main () {
vector<int> v1,v2;
for (int i=1; i<=5; i++)
{
v1.push_back(i);
v2.push_back(i+2);
}
vector<int>::iterator it = v1.begin();
advance (it,3);
copy (v2.begin(),v2.end(),inserter(v1,it));
cout<<"Elements of v1 are :";
for ( it = v1.begin(); it!= v1.end(); ++it )
cout << ' ' << *it;
cout << '\n';
return 0;
}
Output: Elements of v1 are : 1 2 3 3 4 5 6 7 4 5 In the above example, insert_iterator is applied on the copy algorithm to insert the elements of the vector v2 into the vector v1 at a specified position pointed by it. Ostream iterator
Syntaxtemplate<class T, class charT=char, class traits=char_traits<charT>> class ostream_iterator; Member functions of Ostream Iterator class 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); Parameters
Let's see a simple example:
#include <iostream>
#include<iterator>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
vector<int> v;
for(int i=1;i<=5;i++)
{
v.push_back(i*10);
}
ostream_iterator<int> out(cout,",");
copy(v.begin(),v.end(),out);
return 0;
}
Output: 10,20,30,40,50 In the above example, out is an object of the ostream_iterator used to add the delimiter ',' between the vector elements. Let's see another simple example of ostream iterator:
#include <iostream>
#include<iterator>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
ostream_iterator<int> out(cout,",");
*out = 5;
out++;
*out = 10;
out++;
*out = 15;
return 0;
}
Output: 5,10,15, Features Of Output Iterator
X==Y; invalid X!=Y; invalid
*X=7;
X++; ++X; Limitations Of Output Iterator
Suppose 'A' is an output iterator type and 'x' is a integer variable: *A = x; // valid x = *A; // invalid
Suppose 'A' is an output iterator type: A++; // not valid ++A; // not valid
Suppose 'A' and 'B' are the two iterators: A = =B; // not valid A = =B; // not valid
Suppose 'A' is an output iterator: A + 2; // invalid A + 5; // invalid |