我的作业如下:
对于给定的整数数组,找到其元素的总和并打印出最终结果,但是为了获得总和,您需要在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)