当前位置: 首页>>代码示例>>C++>>正文


C++ boost::make_transform_iterator方法代码示例

本文整理汇总了C++中boost::make_transform_iterator方法的典型用法代码示例。如果您正苦于以下问题:C++ boost::make_transform_iterator方法的具体用法?C++ boost::make_transform_iterator怎么用?C++ boost::make_transform_iterator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在boost的用法示例。


在下文中一共展示了boost::make_transform_iterator方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main()
{
    int x[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
    const int N = sizeof(x)/sizeof(int);
    vector<int> v(x, x+N);

    std::cout << "squaring each element in the array:" << std::endl;
    auto transformer = make_adaptor(square);
    std::copy(transformer(v.begin()), transformer(v.end()),
              std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 

    std::cout << "adding 3 to each element in the array:" << std::endl;
    auto transformer2 = make_adaptor(bind(add, placeholders::_1, 3));
    std::copy(transformer2(x), transformer2(x+N),
              std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
 
    using boost::make_transform_iterator;
 
    std::cout << "adding 5 to each element in the array:" << std::endl;
    std::copy(  make_transform_iterator(x, bind(add, placeholders::_1, 5)), 
                make_transform_iterator(x+N, bind(add, placeholders::_1, 5)), 
              std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
}
开发者ID:CCJY,项目名称:coliru,代码行数:29,代码来源:main.cpp

示例2: main

int main(){
	using counter=boost::counting_iterator<int>;
	std::vector<int> v(counter{1},counter{11});
	std::ostream_iterator<int> out{std::cout,", "};
	copy(v.begin(),v.end(),out);
	std::cout << '\n';
	using boost::make_filter_iterator;
	copy(make_filter_iterator(odd{},v.begin(),v.end()),
		 make_filter_iterator(odd{},v.end(),v.end()),
		 out);
	std::cout << '\n';
	using boost::make_transform_iterator;
	auto sq=[](auto i){return i*i;};
	//using std::placeholders::_1;
	//auto sq=bind(std::multiplies<int>{},_1,_1);
	copy(make_transform_iterator(v.begin(),sq),
		 make_transform_iterator(v.end(),sq),
         out);
}
开发者ID:PeterSommerlad,项目名称:CPlusPlusLecture,代码行数:19,代码来源:boostiterator.cpp


注:本文中的boost::make_transform_iterator方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。