gpt4 book ai didi

c++ - for_each 奇怪的行为

转载 作者:行者123 更新时间:2023-11-30 00:40:32 28 4
gpt4 key购买 nike

我不太使用 STL,但我想开始学习它,所以我使用 STL 的 for_each 函数编写了一个非常简单的程序。这是整个程序(减去头文件):

class Object {
public:
int s;

Object() : s(0) { }

Object(const Object& rhs) : s(rhs.s) { }

void operator() (int a) {
s += a;
}
};

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

for_each(arr, arr + sizeof(arr) / sizeof(int), sum);

cout << sum.s;

cin.get();

return 0;
}

程序输出0。我肯定错误地使用了 for_each,但是这段代码究竟有什么问题?

最佳答案

for_each 使用您提供的仿函数的拷贝,然后在最后返回一个拷贝。你需要这个:

sum = for_each(arr, arr + sizeof(arr) / sizeof(int), sum);

关于c++ - for_each 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5843881/

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