本文整理汇总了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;
}
示例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);
}