c ++ for_each()和对象函数

raj*_*504 3 c++

我的作业如下:

对于给定的整数数组,找到其元素的总和并打印出最终结果,但是为了获得总和,您需要在STL中仅执行一次函数for_each()(没有循环).

截至目前这是我的代码:

void myFunction (int i) {
cout << " " << i << " " <<  endl;
} 


int main() {

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

vector<int> v(array[0], array[10]);

for_each( v.begin(), v.end(), myFunction);

return 0;
}
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,输出显示为4198853,起初我认为它是一个内存地址,但我发现这是错误的.有什么想法,我可能做错了什么?

asc*_*ler 10

vector<int> v(array[0], array[10]);
Run Code Online (Sandbox Code Playgroud)

这不符合你的要求. array[0]是第一个值(1). array[10]是在数组末尾的无效访问.要将指针传递给vector构造函数,您需要:

vector<int> v(array, array+10);
Run Code Online (Sandbox Code Playgroud)