gpt4 book ai didi

C++ for_each() 和函数指针

转载 作者:太空宇宙 更新时间:2023-11-04 14:51:19 24 4
gpt4 key购买 nike

我试图让 myFunction 给我数组中值的总和,但我知道我不能使用返回值,当我用代码运行我的程序时,我得到的只是一个打印输出的值,没有总和,这是为什么?

void myFunction (int i) {
int total = 0;
total += i;
cout << total;
}


int main() {
int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

for_each( array, array+10, myFunction);


return 0;
}

最佳答案

你真的需要一个仿函数来存储迭代之间的状态:

struct Sum
{
Sum(int& v): value(v) {}
void operator()(int data) const { value += data;}

int& value;
};

int main()
{
int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

int total = 0;
std::for_each( array, array+10, Sum(total));

std::cout << total << std::endl;
}

关于C++ for_each() 和函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4045669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com