`
xitonga
  • 浏览: 587410 次
文章分类
社区版块
存档分类
最新评论

STL之数值算法

 
阅读更多

STL之数值算法

必须包含头文件<numeric>
#include <numeric>
#include <vector>
#include <functional>
#include <iostream>
#include <iterator> //ostream_iterator
using namespace std;

int main()
{
	int ia[5] = {1,2,3,4,5};
	vector<int> iv(ia, ia+5);

	cout << accumulate(iv.begin(), iv.end(), 0) << endl;
	//15, i.e. 0+1+2+3+4+5

	cout << accumulate(iv.begin(), iv.end(), 0, minus<int>()) << endl;
	//-15 i.e. 0-1-2-3-4-5

	cout << inner_product(iv.begin(), iv.end(), iv.begin(), 10) << endl;
	//65, i.e. 10+1*1+2*2+3*3+4*4+5*5

	cout << inner_product(iv.begin(), iv.end(), iv.begin(), 10, 
		minus<int>(),plus<int>())<<endl;
	//-20, i.e 10 - (1+1)- (2+2)- (3+3)- (4+4)- (5+5)

	//以下这个迭代器将绑定到cout,作为输出
	ostream_iterator<int> oite(cout, " ");
	
	partial_sum(iv.begin(), iv.end(), oite);
	//1 3 6 10 15(第n个新元素是前n个旧元素的相加总计)

	partial_sum(iv.begin(), iv.end(), oite, minus<int>());
	//1 -1 -4 -8 -13(第n个新元素是前n个旧元素的运算总计)

	adjacent_difference(iv.begin(), iv.end(), oite);
	//1 1 1 1 1(#1元素照录,#n新元素等于#n旧元素-#n-1旧元素)

	adjacent_difference(iv.begin(), iv.end(), oite, plus<int>());
	//1 3 5 7 9(#1元素照录,#n新元素等于op(#n旧元素,#n-1旧元素))

	//以下函数时SGI专属
	//cout<<power(10,3)<<endl;	//1000, i.e. 10*10*10
	//cout<< power(10,3,plus<int>())<< endl;	//30, i.e. 10+10+10

	//int n = 3;
	//iota(iv.begin(), iv.end(), n);	//在指定区间内填入n,n+1,n+2

	//for(int i=0, i< iv.size(), ++i)
	//	cout << iv[i] << ' '	//3 4 5 6 7

	return 0;
}


分享到:
评论

相关推荐

    STL数值算法源码

    参考自侯捷先生的《STL源码剖析》,C++ STL 的数值算法(Numeric algorithms)是一组对容器元素进行数值计算的模板函数,包括容器元素求和 accumulate 、两序列元素的内积 inner_product 、容器元素的一系列部分元素和...

    STL所有算法(70个)

    STL算法部分主要由头文件,,组成。要使用 STL中的算法函数必须包含头文件,对于数值算法须包含,中则定义了一些模板类,用来声明函数对象。

    stl常用算法(Algorithms)介绍(stl排序算法、非变序型队列)

    算法:用来处理群集内的元素。它们可以出于不同的目的而搜寻,排序,修改,使用那些元素。... 3)排序值算法:包涵对容器中的值进行排序和合并的算法,还有二叉搜索算法 ,4)通用数值算法:此种算法不多,涉及到专业

    C++STL——各种非变异算法的技术总结和用法代码示例

    经过3天努力,在容器学完后又解决了非变异算法的战斗,感觉收获挺多,拿出来与大家分享,记下来还有变异算法、排序算法和数值算法的总结都会相继分享!

    C++ STL开发技术导引(第5章)

    第24章 数值算法 412 24.1 递增赋值iota 412 24.2 元素求和accumulate 413 24.3 两序列元素内积inner_product 414 24.4 部分元素求和partial_sum 415 24.5 相邻元素求差adjacent_difference 417 24.6 n...

    STL源码剖析.pdg

    6.3 数值算法 [stl_numeric.h] 298 6.3.1 运用实例 298 6.3.2 accumulate 299 6.3.3 adjacent_difference 300 6.3.4 inner_product 301 6.3.5 partial_sum 303 6.3.6 power 304 6.3.7 itoa 305 6.4 基本算法...

    stl-decomp-4j:Seasonal-Trend-Loess时间序列分解算法的Java实现

    黄土时间序列的季节性分解 Seasonal-Trend-Loess(STL)算法将时间序列分解为季节,趋势和残差成分。 该算法使用( 为原始论文)来平滑循环子序列(例如,下例中所示的CO 2数据中的所有January值)。 从信号中去除...

    STL入门快速入门教程-----学习C++

    STL重要部分,包含了70多个通用算法,都是优化的效率很高的,用来控制各种容器,内建数组等。例如find可以用来在容器中查找某特定值的元素,for_each可以用来将函数应用到容器元素之上,sort用于对容器中的元素排序...

    STL 源码剖析(侯捷先生译著)

    6.3 数值算法 [stl_numeric.h] 298 6.3.1 运用实例 298 6.3.2 accumulate 299 6.3.3 adjacent_difference 300 6.3.4 inner_product 301 6.3.5 partial_sum 303 6.3.6 power 304 6.3.7 itoa 305 6.4 基本算法...

    C++ STL 开发技术导引(第6章)

    第24章 数值算法 412 24.1 递增赋值iota 412 24.2 元素求和accumulate 413 24.3 两序列元素内积inner_product 414 24.4 部分元素求和partial_sum 415 24.5 相邻元素求差adjacent_difference 417 24.6 n...

    C++标准程序库—自修教程与参考手册

    复杂度 算法 仿函数 STL容器 STL迭代器 STL仿函数 STL算法 数值 空间配置器

    C++标准程序库STL的架构

    9.11 数值算法 120 9.11.1 加工运算后产生结果 120 9.11.2 相对值和绝对值之间的转换 121 10 特殊容器 123 10.1 Stacks 123 10.1.1 核心接口 123 10.1.2 Stack运用实例 123 10.1.3 使用自定义的Stack类 124 10.2 ...

    ACM 算法模板集

    常用函数与STL 二. 重要公式与定理 1. Fibonacci Number 2. Lucas Number 3. Catalan Number 4. Stirling Number(Second Kind) 5. Bell Number 6. Stirling's Approximation 7. Sum of Reciprocal Approximation 8....

    STL programmer guide

    STL程序员不可多得的好帮手,chm格式,支持索引和搜索,包含了SGI STL的各个模板类,扩展容器和数值算法等。

    STL标准模板库简介

    C++_STL标准模板库 比较全面 STL 简介 2 顺序性容器 2.1 C++ VECTOR(向量容器) 2.2 C++ LIST(双向链表) 2.3 C++ DEQUE(双向队列) 2.4 三者比较 3 关联容器 3.1 特点 3.2 C++ SETS & MULTISETS ...6.6 数值

    nrng:该存储库提供基于迭代器,基于前哨和基于范围的数值算法

    该库当前提供以下STL算法的受约束版本。 这些算法的行为通常应与标准版本非常相似。 统计算法 样本$ S $的第n个(原始)矩$ M_n $,定义为$$ M_n = \ frac {1} {| S |} \ sum_ {x_i \ in S} x_i ^ n。 $$ 求和的...

    C++ STL开发技术导引(第3章)

    第24章 数值算法 412 24.1 递增赋值iota 412 24.2 元素求和accumulate 413 24.3 两序列元素内积inner_product 414 24.4 部分元素求和partial_sum 415 24.5 相邻元素求差adjacent_difference 417 24.6 n...

    用于MATLAB的STL CAD几何模型处理工具箱.zip

    1. 丰富的数学和科学函数库:Matlab提供了广泛的数学、信号处理、图像处理、优化、统计等领域的函数库,这些函数库可以帮助开发者快速实现各种复杂的数值计算算法。这些函数库提供了许多常用的算法和工具,可以大大...

    C++STL程序员开发指南【可搜索+可编辑】

    本版本与网上其他资源不同之处在于,此版本可进行编辑,搜索,已进行内容识别扫描。可全选,可编辑,可剪切文字。 部分目录如下: 目录 第一篇预备知识 第1 章C++ 编程技术.........................................

    上海交通大学ACM算法模板

    常用函数与STL 重要公式与定理 1. Fibonacci Number 2. Lucas Number 3. Catalan Number 4. Stirling Number(Second Kind) 5. Bell Number 6. Stirling's Approximation 7. Sum of Reciprocal Approximation 8. ...

Global site tag (gtag.js) - Google Analytics