1.使用函数对象,可以让函数变得有状态。而且可以在运行期再初始化。
2.函数对象通常比寻常函数速度快。
template<int theValue>
void add(int& elem){
elem += theValue;
}
class AddValue{
private:
int theValue;
public:
AddValue(int v) : theValue(v){}
void operator()(int& elem) const {
elem += theValue;
}
};
void f1(){
vector<int> coll;
```
int n = 10;
//error
for_each(coll.begin(),coll.end(),add<n>);
//OK
for_each(coll.begin(),coll.end(),AddValue(n));
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有