c++ - c++ vector 中元素的划分

标签 c++ algorithm stl

我在 C++ 中有 vector ,类似于 std::vector<double> v = {10.0, 5.0, 2.0} .我想按顺序划分 vector 的所有元素,即 10/5.0 =2.0,然后 2.0/2.0 应该是 1。因此,最终答案是 vector 的所有元素的划分。有什么方法可以有效地使用一些 STL 函数或算法。我不想使用 for环形。感谢您的帮助!!

最佳答案

正如 @Algirdas Preidžius 在评论中提到的(我在它弹出之前就开始写我的答案),你可能只是错过了算法应该从第一个数字开始而不是 除以它。这应该是您所期望的:

int main()
{
    std::vector<double> vec = {10, 5, 2};

    std::cout << std::accumulate(vec.cbegin() + 1, vec.cend(),
                                 vec[0], std::divides<>());
}

注意vec.cbegin()vec[0]之后的+1作为起始值

关于c++ - c++ vector 中元素的划分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51343065/

相关文章:

c++ - 检查程序是否崩溃

c++ - 这种情况下虚拟继承的行为

algorithm - 应该对算法/代码进行哪些更改才能获得预期的车辆形状?

c++ - 将唯一元素从 std::vector 插入到 std::set

c++ - 递增迭代器 : Is++it more efficient than it++?

c++ - 如何使用remove_if从 vector 中删除元素

c++ - 交换不使用函数作为参数

c++ - 中缀到后缀算法

algorithm - 通过点位置或图像进行角点检测

java - 实现velocity verlet算法java