能否在一个功能体内在当地界定校长?
我认为,对当地定义的校长(特别是如果我们想使用STL算法)的一种可能使用就是说。
我们有两个矢量<代码>std:vector<int> s/code>和b
,然后我们可以以多种方式予以同等考虑。 i.e. a[i] = b[i] (mod loop_counter)
,在这种地方,假冒者保持变化,我们测试在每处休息时实现平等。
for(int i=0 ; i<=10 ; ++i)
{
//Define binary predicate functor my_local_predicate
//Test for equality using functor local to loop
std::equal(a.begin(), a.end(), b.begin, my_local_predicate)
// Do something if they are equal OR unequal
}
如果答案没有,那么在平等条件与每一种变化之间如何改变的情况下,谁会这样做?
<>光> 我试图将ctor子界定为(此处为>>,但该方案未能汇编成册。
#include <algorithm>
#include <iostream>
#include <list>
int main() {
class EvenOddFunctor
{
int even_;
int odd_;
public:
EvenOddFunctor() : even_(0), odd_(0) {}
void operator()(int x) {
if (x%2 == 0) even_ += x;
else odd_ += x;
}
int even_sum() const { return even_; }
int odd_sum() const { return odd_; }
};
EvenOddFunctor evenodd;
int my_list[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
evenodd = std::for_each(my_list,
my_list+sizeof(my_list)/sizeof(my_list[0]),
evenodd);
std::cout << "Sum of evens: " << evenodd.even_sum() << "
";
std::cout << "Sum of odds: " << evenodd.odd_sum() << std::endl;
// output:
// Sum of evens: 30
// Sum of odds: 25
}
关于将博士定义移至<代码>main()”的问题,该守则进行了精确汇编,并正确地执行。
因此,即使在一个职能机构内确定一位胜利者似乎是不可能的,我也希望一些小ice像改变每一个代人的平等条件。