码迷,mamicode.com
首页 > 其他好文 > 详细

STL 源码分析 # stl_number #

时间:2015-04-09 19:58:47      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:c++

STL 源码分析 # stl_number #


/***********************************************************
Programmer	:	EOF
e-mail		:	jasonleaster@gmail.com
Date		:	2015.04.04
File		:	6number.cpp

************************************************************/
#include <numeric>
#include <vector>
#include <functional>
#include <iostream>
#include <iterator>

using namespace std;

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

	cout << accumulate(iv.begin(), iv.end(), 0) << endl;

	cout << accumulate(iv.begin(), iv.end(), 0, minus<int>() ) << endl;

	cout << inner_product(iv.begin(), iv.end(), iv.begin(), 10) << endl;

	cout << inner_product(iv.begin(), iv.end(), 
						iv.begin(), 10, minus<int>(), plus<int>()) 
	<< endl;

	ostream_iterator<int> oite(cout, " ");

	partial_sum(iv.begin(), iv.end(), oite);

	partial_sum(iv.begin(), iv.end(), oite, minus<int>());

	adjacent_difference(iv.begin(), iv.end(), oite);

	adjacent_difference(iv.begin(), iv.end(), oite, plus<int>());


	for(int i = 0; i < iv.size(); i++)
	{
		cout << iv.at(i) << " ";
	}
	cout << endl;

	return 0;
}


技术分享


accumulate()的实现

技术分享


内积 inner_product()

/技术分享



partial_sum()和之前的accumulate()不一样,partial_sum()可能会把一步步积分的结果粗村在__result指向的
"连续数据结构内".之所以这么说,是因为,这货可能是数组,也可能是其他支持++运算符迭代器的类型.

技术分享


把相邻的数据做差分,然后储存在__result指向的数据结构内

技术分享



power()的实现.不过话说我主机里面的STL 还没有支持power...不能用.

技术分享





技术分享

STL 源码分析 # stl_number #

标签:c++

原文地址:http://blog.csdn.net/cinmyheart/article/details/44962153

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!