z****e 发帖数: 2024 | 1 auto_ptr > p=(new vector);
//do something...
transform( pnorm->begin(),pnorm->end(),pnorm->begin(),
bind2nd(shift_rescale(), make_pair(10.0,2.0))) ;
//shift_rescale的定义:
template
struct shift_rescale: public binary_function{
T operator()(const T& source, const pair& args) const{
return args.first+source*args.second;
}
};
transform那句话,巨长的编译报错一大堆,各种字符交相辉映,无法看懂。
肯定是bind2nd(shift_rescale(), make_pair(10.0, |
z****e 发帖数: 2024 | 2 对了对了,
shift_rescale的定义在类里边。
就是说,上边的p是 classA::p,
上边的shift_rescale是 classA::shift_rescale.
我猜,因为shift_rescale是一个成员模板?必须有类的实体,才能用?
大侠给讲讲吧。 |
p***o 发帖数: 1252 | 3 你第二个参数不是pair么,那么要用
binary_function, T>
而不是
binary_function
【在 z****e 的大作中提到】 : auto_ptr > p=(new vector); : //do something... : transform( pnorm->begin(),pnorm->end(),pnorm->begin(), : bind2nd(shift_rescale(), make_pair(10.0,2.0))) ; : //shift_rescale的定义: : template : struct shift_rescale: public binary_function{ : T operator()(const T& source, const pair& args) const{ : return args.first+source*args.second; : }
|
z****e 发帖数: 2024 | 4 是的是的,终于通过了。
阿门!
【在 p***o 的大作中提到】 : 你第二个参数不是pair么,那么要用 : binary_function, T> : 而不是 : binary_function
|
z****e 发帖数: 2024 | 5 再问一个问题,并祝大侠周末愉快,
我在自定义的那个function object里边加了一个cout和一个static int cnt的计数器。
发现这个function object被调用的次数,是我那个p->size()的两倍。这是为什么呢?
还是我又搞错了?
【在 p***o 的大作中提到】 : 你第二个参数不是pair么,那么要用 : binary_function, T> : 而不是 : binary_function
|
p***o 发帖数: 1252 | 6
器。
贴代码,估计那儿不对吧。
【在 z****e 的大作中提到】 : 再问一个问题,并祝大侠周末愉快, : 我在自定义的那个function object里边加了一个cout和一个static int cnt的计数器。 : 发现这个function object被调用的次数,是我那个p->size()的两倍。这是为什么呢? : 还是我又搞错了?
|
z****e 发帖数: 2024 | 7 不用贴了,我找到了。一个愚蠢的错误。
大侠周末还给小弟解决问题,已经感激涕零了,怎敢再烦劳您忍受我的代码呢?
【在 p***o 的大作中提到】 : : 器。 : 贴代码,估计那儿不对吧。
|
z****e 发帖数: 2024 | 8 另外写程序时间太长是不是得颈椎并?
有什么保护措施没?
我觉得脖子一直保持一个直立的姿势,然后手在键盘上,好几个小时,像个雕塑一样,
肩膀子都难受,脖子也难受。
【在 p***o 的大作中提到】 : : 器。 : 贴代码,估计那儿不对吧。
|