【发布时间】:2020-12-04 20:21:07
【问题描述】:
int arr1[5] = { 1,2,3,4,5 };
int sum = reduce(arr1[0], arr1[5]);
我编写此代码是为了将std::reduce 函数与整数数组一起使用。我应该如何定义数组的开头和结尾?
【问题讨论】:
-
为什么不使用std::vector ?那么你将拥有begin 和end。
-
@TonyTannous 我知道它适用于向量,只是想知道它是否也适用于数组
-
@TonyTannous C++11 及更高版本有
std::begin()和std::end(),它们适用于容器和固定数组。 -
reduce()接受迭代器,而不是元素的值。选项包括reduce(&arr1[0], &arr1[5])(注意&s)、reduce(arr1, arr1 + 5)或(避免对数组长度进行硬编码,如果数组长度发生更改并且您忘记更新所有用法,则会中断)、reduce(&arr1[0], &arr1[sizeof(arr1)/sizeof(arr[0])])、@987654333 @。最好的方法是使用标准库,并做reduce(std::begin(arr1), std::end(arr1))。