template<class Container, class Iterator> insert_iterator<container> inserter(Container &x,Iterator it);
x :这是要在其上插入新元素的集合。
it :它是一个迭代器对象,指向要修改的位置。
让我们看一个简单的示例:
#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; }
输出:
Elements of v1 are : 1 2 3 3 4 5 6 7 4 5
在上面的示例中,将insert_iterator应用于复制算法,以将向量v2的元素插入到向量v1所指向的指定位置。
template<class T, class charT=char, class traits=char_traits<charT>> class ostream_iterator;
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; 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; }
输出:
10,20,30,40,50
在上面的示例中,out是ostream_iterator的对象,用于在向量元素之间添加定界符','。
让我们看一下ostream迭代器的另一个简单示例:
#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; }
输出:
5,10,15,
X==Y; invalid X!=Y; invalid
*X=7;
X++; ++X;
假设" A"是Output Iterator(输出迭代器)类型," x"是整数变量:
*A = x; //valid x = *A; //invalid
假设" A"是Output Iterator(输出迭代器)类型:
A++; //not valid ++A; //not valid
假设" A"和" B"是两个迭代器:
A = =B; //not valid A = =B; //not valid
假设" A"是Output Iterator(输出迭代器):
A + 2; //invalid A + 5; //invalid
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)