【C++】STL 算法 - 累加填充算法 ( 元素累加算法 - accumulate 函数 | 元素填充算法 - fill 函数 )

2024-01-18 10:20

本文主要是介绍【C++】STL 算法 - 累加填充算法 ( 元素累加算法 - accumulate 函数 | 元素填充算法 - fill 函数 ),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、元素累加算法 - accumulate 函数
    • 1、函数原型分析
    • 2、代码示例
  • 二、元素填充算法 - fill 函数
    • 1、函数原型分析
    • 2、代码示例





一、元素累加算法 - accumulate 函数



1、函数原型分析


在 C++ 语言 的 标准模板库 ( STL , STL Standard Template Library ) 中 , 提供了 accumulate 元素累加算法函数 用于 将 一个容器中的元素 进行累加操作 ;


accumulate 元素累加函数 将 输入容器 的 [ 起始迭代器, 终止迭代器 ) 范围 内的 元素 在一个基础值 的 基础上 进行累加 , 得到一个累加值 ;

最终 accumulate 函数 返回最终累加后的值 ;


accumulate 元素累加算法 函数原型 如下 :

template <class InputIterator, class T>  
T accumulate(InputIterator first, InputIterator last, T init);  
  • 参数解析 :
    • InputIterator first 参数 : 输入容器 ( 被复制容器 ) 的 迭代器范围 的 起始迭代器 ( 包含该迭代器指向的元素 ) ;
    • InputIterator last 参数 : 输入容器 ( 被复制容器 ) 的 迭代器范围 的 终止迭代器 ( 不包含该迭代器指向的元素 ) ;
    • T init 参数 : 累加的初始值 , 该值与 容器中的元素类型一致 ;
  • 返回值解析 : T 类型 是 容器元素类型 , 返回的是最终的累加值 ;

代码示例 :

	// 输入容器vector<int> source{ 9, 5, 2, 7 };// 将容器中的值累加int acc = accumulate(source.begin(), source.end(), 0);

2、代码示例


代码示例 :

#include "iostream"
using namespace std;
#include <vector>
#include <algorithm>
#include "functional"// accumulate 函数定义在这个头文件中 
#include <numeric>int main() {// 输入容器vector<int> source{ 9, 5, 2, 7 };// 将容器中的值累加int acc = accumulate(source.begin(), source.end(), 0);// 遍历打印容器中元素内容for_each(source.begin(), source.end(), [](int a) {cout << a << " ";});cout << endl;cout << "acc = " << acc << endl;// 控制台暂停 , 按任意键继续向后执行system("pause");return 0;
};

执行结果 :

9 5 2 7
acc = 23
请按任意键继续. . .

在这里插入图片描述





二、元素填充算法 - fill 函数



1、函数原型分析


在 C++ 语言 的 标准模板库 ( STL , STL Standard Template Library ) 中 , 提供了 fill 元素填充算法函数 用于 将 一个容器中的 指定范围的元素 修改为指定值 ;


fill 元素填充函数 将 输入容器 的 [ 起始迭代器, 终止迭代器 ) 范围 内的 元素 修改为指定值 ;


fill 元素填充算法 函数原型 如下 :

template <class ForwardIterator, class T>  
void fill(ForwardIterator first, ForwardIterator last, const T& value);
  • 参数解析 :
    • ForwardIterator first 参数 : 输入容器 ( 被复制容器 ) 的 迭代器范围 的 起始迭代器 ( 包含该迭代器指向的元素 ) ;
    • ForwardIterator last 参数 : 输入容器 ( 被复制容器 ) 的 迭代器范围 的 终止迭代器 ( 不包含该迭代器指向的元素 ) ;
    • const T& value 参数 : 要求改的值
  • 返回值解析 : void 类型返回值 ;

代码示例 :

	// 输入容器vector<int> source{ 9, 5, 2, 7 };// 将容器中的值都填充为 888fill(source.begin(), source.end(), 888);

2、代码示例


代码示例 :

#include "iostream"
using namespace std;
#include <vector>
#include <algorithm>
#include "functional"// accumulate 函数定义在这个头文件中 
#include <numeric>int main() {// 输入容器vector<int> source{ 9, 5, 2, 7 };// 遍历打印容器中元素内容for_each(source.begin(), source.end(), [](int a) {cout << a << " ";});cout << endl;// 将容器中的值都填充为 888fill(source.begin(), source.end(), 888);// 遍历打印容器中元素内容for_each(source.begin(), source.end(), [](int a) {cout << a << " ";});cout << endl;// 控制台暂停 , 按任意键继续向后执行system("pause");return 0;
};

执行结果 :

9 5 2 7
888 888 888 888
请按任意键继续. . .

在这里插入图片描述

这篇关于【C++】STL 算法 - 累加填充算法 ( 元素累加算法 - accumulate 函数 | 元素填充算法 - fill 函数 )的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/618740

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

C++中悬垂引用(Dangling Reference) 的实现

《C++中悬垂引用(DanglingReference)的实现》C++中的悬垂引用指引用绑定的对象被销毁后引用仍存在的情况,会导致访问无效内存,下面就来详细的介绍一下产生的原因以及如何避免,感兴趣... 目录悬垂引用的产生原因1. 引用绑定到局部变量,变量超出作用域后销毁2. 引用绑定到动态分配的对象,对象

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

使用Java填充Word模板的操作指南

《使用Java填充Word模板的操作指南》本文介绍了Java填充Word模板的实现方法,包括文本、列表和复选框的填充,首先通过Word域功能设置模板变量,然后使用poi-tl、aspose-words... 目录前言一、设置word模板普通字段列表字段复选框二、代码1. 引入POM2. 模板放入项目3.代码

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

python中的高阶函数示例详解

《python中的高阶函数示例详解》在Python中,高阶函数是指接受函数作为参数或返回函数作为结果的函数,下面:本文主要介绍python中高阶函数的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录1.定义2.map函数3.filter函数4.reduce函数5.sorted函数6.自定义高阶函数

Python中的sort方法、sorted函数与lambda表达式及用法详解

《Python中的sort方法、sorted函数与lambda表达式及用法详解》文章对比了Python中list.sort()与sorted()函数的区别,指出sort()原地排序返回None,sor... 目录1. sort()方法1.1 sort()方法1.2 基本语法和参数A. reverse参数B.

C++读写word文档(.docx)DuckX库的使用详解

《C++读写word文档(.docx)DuckX库的使用详解》DuckX是C++库,用于创建/编辑.docx文件,支持读取文档、添加段落/片段、编辑表格,解决中文乱码需更改编码方案,进阶功能含文本替换... 目录一、基本用法1. 读取文档3. 添加段落4. 添加片段3. 编辑表格二、进阶用法1. 文本替换2

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别