如何创建一个将从输入流读取下一个值的函子?
像这样的东西:
std::bind1st(std::mem_fun(&istream::get ??), cin)
。这似乎对我不起作用。
编辑:
使用:
vector<int> vNumbers;
generate_n(back_inserter(vNumbers), iNumCount, functor);
Something like this :
std::bind1st(std::mem_fun(&istream::get ??), cin)
. This does not seem to work for me.
EDIT:
Use :
vector<int> vNumbers;
generate_n(back_inserter(vNumbers), iNumCount, functor);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为标准绑定函数不允许您定义无效函数。
bind1st
绑定到二元函数的第一个参数,并返回一个一元函数,该函数将其参数作为绑定函数的第二个参数传递。但是,您可以超出标准库并使用 Boost.Bind:
I don't think the standard binding functions let you define nullary functions.
bind1st
binds to the first argument of a binary function and returns a unary function that passes its parameter as the second parameter of the bound function.You can go outside the standard library, however, and use Boost.Bind:
std::mem_fun
接受一个指针。因此,
您可能还想将
std::istream_iterator
与自定义/窃取的copy_n
算法一起使用(遗憾的是这不是标准的):std::mem_fun
takes a pointer. So dowhere
You also may want to use
std::istream_iterator
with a custom / stolencopy_n
algorithm (which sadly is not standard):