STL原理解析之inserter插入迭代器的简单实现

   日期:2020-07-10     浏览:98    评论:0    
核心提示:#pragma once#includetemplateclass MyInserterIter : public std::iterator{ protected: Container& coll;//注意此处为一个ref
#pragma once
#include<iterator>

template<typename Container>
class MyInserterIter : public std::iterator<std::output_iterator_tag, typename Container::value_type>
{
	protected:
	Container& coll;//注意此处为一个reference
	public:
	explicit MyInserterIter(Container& c) :coll(c) {}

// MyInserterIter& operator = (const MyInserterIter&) { return *this; }//vs实现中可能需要自己定义拷贝赋值运算符 因为其copy算法的实现调用了拷贝赋值运算符 C++标准中并没有这样的要求

	MyInserterIter& operator *()
	{
		return *this;
	}
	MyInserterIter& operator ++()
	{
		return *this;

	}
	MyInserterIter& operator ++(int)
	{
		return *this;
	}
	MyInserterIter& operator =(const typename Container::value_type& value)
	{
		coll.insert(value);
		return *this;
	}
};

template<typename coll>
inline MyInserterIter<coll> InserterIter(coll& c)
{
	return MyInserterIter<coll>(c);
}
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服