21xrx.com
2024-11-25 03:13:42 Monday
登录
文章检索 我的文章 写文章
C++ vector求和方法
2023-07-09 20:35:45 深夜i     --     --
C++ vector 求和方法

C++ 是一种强大的编程语言,它的 vector 类型是一个常用的容器,可以存储不同类型的元素。当我们需要对 vector 中的元素求和时,可以使用以下几种方法:

方法一:使用 for 循环求和

使用 for 循环遍历 vector 中的每个元素,将它们累加到一个变量中,最终得到总和。


#include <vector>

#include <iostream>

int main() {

 std::vector<int> numbers = 5;

 int sum = 0;

 for (int i = 0; i < numbers.size(); i++) {

  sum += numbers[i];

 }

 std::cout << "The sum is " << sum << std::endl;

 return 0;

}

方法二:使用 C++11 的 std::accumulate 函数

std::accumulate 是 C++11 中提供的一个函数模板,用于对一个序列进行累加操作。我们可以将 vector 的首尾迭代器传递给该函数,它会自动遍历所有元素并求和。


#include <vector>

#include <numeric> // for std::accumulate

#include <iostream>

int main() {

 std::vector<int> numbers = 3;

 int sum = std::accumulate(numbers.begin(), numbers.end(), 0);

 std::cout << "The sum is " << sum << std::endl;

 return 0;

}

方法三:使用 C++17 的 std::reduce 函数

std::reduce 是 C++17 中提供的一个函数模板,用于对一个序列进行累加操作,并且可以并发执行。我们可以将 vector 的首尾迭代器和一个初始值传递给该函数,它会自动遍历所有元素并求和。


#include <vector>

#include <numeric> // for std::reduce

#include <iostream>

int main() {

 std::vector<int> numbers = 3;

 int sum = std::reduce(std::execution::par, numbers.begin(), numbers.end(), 0);

 std::cout << "The sum is " << sum << std::endl;

 return 0;

}

以上就是三种常用的方法,使用 for 循环是最基本的方法,std::accumulate 和 std::reduce 可以更方便、更快速地求和。开发者应该根据具体情况选择适当的方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复