插入迭代器 back_inserter、front_inserter、inserter
2016-09-01 16:06
369 查看
编写程序使用 replace_copy 将一个容器中的序列复制给另一个容器,并将前一个序列中给定的值替换为指定的新值。分别使用 inserter、back_inserter 和 front_inserter 实现这个程序。讨论在不同情况下输出序列如何变化。
/*
back_inserter 从后面插入 每一个都在前一个的后面
front_inserter 从前面插入 每一个都在前一个的前面
inserter 后面插入,需要有一个插入位置
*/
#include <iostream>
#include <string>
#include <list>
#include<algorithm>
#include<iterator>
using namespace std;
int main()
{
list<int>ivec1,ivec2;
int ival;
cout<<"input ival;"<<endl;
while(cin>>ival)
ivec1.push_back(ival);
cin.clear();
int value;
cout<<"input new value"<<endl;
cin>>value;
//back_inserter 创建使用 push_back 实现插入的迭代器。
//replace_copy(ivec1.begin(),ivec1.end(),back_inserter(ivec2),0,value);
//front_inserter,使用 push_front 实现插入。 vector 不可以使用
//replace_copy(ivec1.begin(),ivec1.end(),front_inserter(ivec2),0,value);
/*inserter,使用 insert 实现插入操作。除了所关联的容器外,inserter
还带有第二实参:指向插入起始位置的迭代器。 */
replace_copy(ivec1.begin(),ivec1.end(),inserter(ivec2,ivec2.begin()),0,value);
for(list<int>::iterator it=ivec2.begin();it!=ivec2.end();++it)
{
cout<<*it<<" ";
}
cout<<endl;
return 0;
}
/*
back_inserter 从后面插入 每一个都在前一个的后面
front_inserter 从前面插入 每一个都在前一个的前面
inserter 后面插入,需要有一个插入位置
*/
#include <iostream>
#include <string>
#include <list>
#include<algorithm>
#include<iterator>
using namespace std;
int main()
{
list<int>ivec1,ivec2;
int ival;
cout<<"input ival;"<<endl;
while(cin>>ival)
ivec1.push_back(ival);
cin.clear();
int value;
cout<<"input new value"<<endl;
cin>>value;
//back_inserter 创建使用 push_back 实现插入的迭代器。
//replace_copy(ivec1.begin(),ivec1.end(),back_inserter(ivec2),0,value);
//front_inserter,使用 push_front 实现插入。 vector 不可以使用
//replace_copy(ivec1.begin(),ivec1.end(),front_inserter(ivec2),0,value);
/*inserter,使用 insert 实现插入操作。除了所关联的容器外,inserter
还带有第二实参:指向插入起始位置的迭代器。 */
replace_copy(ivec1.begin(),ivec1.end(),inserter(ivec2,ivec2.begin()),0,value);
for(list<int>::iterator it=ivec2.begin();it!=ivec2.end();++it)
{
cout<<*it<<" ";
}
cout<<endl;
return 0;
}
相关文章推荐
- STL之--插入迭代器(back_inserter,inserter,front_inserter的区别)
- STL之--插入迭代器(back_inserter,inserter,front_inserter的区别)
- C++语法基础--泛型算法(generic algorithm)--插入迭代器back_inserter(),front_insertor(),inserter()以及next()函数简介
- 迭代器适配器(一)back_inserter和front_inserter的实现
- 迭代器适配器(一)back_inserter和front_inserter的实现
- back_inserter 11.2.2- 3 插入迭代器
- list(链表)常用成员(顺序容器)----插入push_back,push_front,insert删除pop_back,pop_front,erase,clear遍历begin,end判空emp
- inserter、back_inserter、front_inserter
- c++迭代器详解(一):back_inserter, front_inserter,inserter
- STL(十):迭代器适配器{(插入迭代器back_insert_iterator)、IO流迭代器(istream_iterator、ostream_iterator)}
- 6种常用的迭代器 ostream_iterator,istream_iterator,reverse_iterator,back_insert_iterator,front_insert_itera)
- back_inserter & front_inserter & inserter的用法
- list(链表)常用成员(顺序容器)----插入push_back,push_front,insert删除pop_back,pop_front,erase,clear遍历begin,end判空empt
- 使用插入迭代器(inserter)和流迭代器(stream iterators)
- 从零开始学C++之STL(十):迭代器适配器{(插入迭代器back_insert_iterator)、IO流迭代器(istream_iterator、ostream_iterator)}
- list(链表)常用成员(顺序容器)----插入push_back,push_front,insert删除pop_back,pop_front,erase,clear遍历begin,end判空em
- 从零开始学C++之STL(十):迭代器适配器{(插入迭代器back_insert_iterator)、IO流迭代器(istream_iterator、ostream_iterator)}
- STL使用list的成员函数push_back和push_front插入一个元素到list中
- inserter、back_inserter、front_inserter
- 迭代器适配器{(插入迭代器back_insert_iterator)、IO流迭代器(istream_iterator、ostream_iterator)}