首页 > 解决方案 > c++中向量中的元素除法

问题描述

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

标签: c++algorithmstl

解决方案


正如@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<>());
}

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


推荐阅读