ahahaaaab
2016-02-03 08:11关于C++11 bind函数的疑问
deque coll2 = {1,2,3,4,5,6,7,8,9};
coll2.erase(
remove_if(coll2.begin(), coll2.end(),
bind(logical_and(),
bind(greater_equal(), _1, 5),
bind(less_equal(), _1, 8))),
coll2.end());
上面表达式的意思是删除coll2里大于等于5小于等于8的元素,
外层的erase和remove_if我都熟悉,但是这一句:
bind(logical_and(),
bind(greater_equal(), _1, 5),
bind(less_equal(), _1, 8))
我觉得总体的意思是bind生成一个函数对象,这个函数对象接受coll2给的一个int元素并返回bool,
但是为什么bind()里面还要bind(),这不就是把里层的bind生成的函数对象绑定给外层作为固定参数了吗,
不太理解,求大神具体解释一下。谢谢!
- 点赞
- 回答
- 收藏
- 复制链接分享
2条回答
为你推荐
- 请教WSAIoctl(.., SIO_RCVALL)监听网络, 返回10022,WinXP下可以,Win7下失败。
- c语言
- 开发语言
- c++
- 3个回答
- Go中是否有类似于C ++绑定的内容?
- callback
- 1个回答
- c++,socket编程实现简易聊天系统,客户端一直连不上服务端,connect返回错误10014
- c++
- 1个回答
- 虚函数到底是啥意思啊 啊啊啊啊
- c++
- 7个回答
- 为什么c++11 thread多线程造成 socket 中accept函数不阻塞?
- 2个回答
换一换