迭代器
迭代器类型
输入迭代器(相对容器来说,即来自容器的信息)、输出迭代器(传输给容器的信息)、正向迭代器、双向迭代器、随机访问迭代器
迭代器 头文件iterator
ostream_iterator<int, char> out_iter(cout, " ")输出流迭代器,第一个模板参数为发送给输出流的数据类型,第二个模板参数指出输出流使用的字符类型(另一个可能值是wchar_t),构造函数第一个参数指出要使用的输出流,第二个参数是发送给输出流的每个数据项后显示的分隔符。
*out_iter++ = 15; //等价于 cout <<15 <<" "; 将15和由空格组成的字符串发送到cout 管理的输出流,并为下一个输出操作做好准备,结合copy()
copy(dice.begin(), dice.end(), out_iter);//把dice容器内容复制到输出流,即显示容器内容。
copy(dice.rbegin(), dice.rend(), out_iter);//反向打印
copy(istream_iterator<int, char>(cin), istream_iterator<int, char>(), dice.begin());//从输入流读取到dice,直到文件结尾、类型不匹配或出现其它输入故障为止
插入迭代器
back_insert_iterator只用于允许尾部快速插入的容器,vector
front_insert_iterator只用于允许头部快速插入的容器, vector不满足,queue满足
insert_iterator插入到迭代器前端
* 模板参数为容器类型,构造函数参数为实际的容器标识符,对于insert_iterator 构造函数需再加一个指示插入位置的参数。如 insert_iterator<vector<int> > back_iter(dice, dice.begin()); //dice为vector<int> 类型
* 结合copy() 可以用于插入数据
输入迭代器(相对容器来说,即来自容器的信息)、输出迭代器(传输给容器的信息)、正向迭代器、双向迭代器、随机访问迭代器
迭代器 头文件iterator
ostream_iterator<int, char> out_iter(cout, " ")输出流迭代器,第一个模板参数为发送给输出流的数据类型,第二个模板参数指出输出流使用的字符类型(另一个可能值是wchar_t),构造函数第一个参数指出要使用的输出流,第二个参数是发送给输出流的每个数据项后显示的分隔符。
*out_iter++ = 15; //等价于 cout <<15 <<" "; 将15和由空格组成的字符串发送到cout 管理的输出流,并为下一个输出操作做好准备,结合copy()
copy(dice.begin(), dice.end(), out_iter);//把dice容器内容复制到输出流,即显示容器内容。
copy(dice.rbegin(), dice.rend(), out_iter);//反向打印
copy(istream_iterator<int, char>(cin), istream_iterator<int, char>(), dice.begin());//从输入流读取到dice,直到文件结尾、类型不匹配或出现其它输入故障为止
插入迭代器
back_insert_iterator只用于允许尾部快速插入的容器,vector
front_insert_iterator只用于允许头部快速插入的容器, vector不满足,queue满足
insert_iterator插入到迭代器前端
* 模板参数为容器类型,构造函数参数为实际的容器标识符,对于insert_iterator 构造函数需再加一个指示插入位置的参数。如 insert_iterator<vector<int> > back_iter(dice, dice.begin()); //dice为vector<int> 类型
* 结合copy() 可以用于插入数据