zoukankan      html  css  js  c++  java
  • STL—常用算术生成算法

    常用算术生成算法

    学习目标:

    • 掌握常用的算术生成算法

    注意:

    • 算术生成算法属于小型算法,使用时包含的头文件为 #include <numeric>

    算法简介:

    • accumulate // 计算容器元素累计总和

    • fill // 向容器中添加元素

    1 accumulate

    功能描述:

    • 计算区间内 容器元素累计总和

    函数原型:

    • accumulate(iterator beg, iterator end, value);

      // 计算容器元素累计总和

      // beg 开始迭代器

      // end 结束迭代器

      // value 起始累加值

    示例:

    #include <numeric>
    #include <vector>
    void test01()
    {
    	vector<int> v;
    	for (int i = 0; i <= 100; i++) {
    		v.push_back(i);
    	}
    
        //第三个参数是起始累加值
    	int total = accumulate(v.begin(), v.end(), 0);
    
    	cout << "total = " << total << endl;
    }
    
    int main() {
    
    	test01();
    
    	system("pause");
    
    	return 0;
    }
    

    总结:accumulate使用时头文件注意是 numeric,这个算法很实用

    2 fill

    功能描述:

    • 向容器中填充指定的元素

    函数原型:

    • fill(iterator beg, iterator end, value);

      // 向容器中填充元素

      // beg 开始迭代器

      // end 结束迭代器

      // value 填充的值

    示例:

    #include <numeric>
    #include <vector>
    #include <algorithm>
    
    class myPrint
    {
    public:
    	void operator()(int val)
    	{
    		cout << val << " ";
    	}
    };
    
    void test01()
    {
    
    	vector<int> v;
    	v.resize(10);
    	//填充
    	fill(v.begin(), v.end(), 100);
    
    	for_each(v.begin(), v.end(), myPrint());
    	cout << endl;
    }
    
    int main() {
    
    	test01();
    
    	system("pause");
    
    	return 0;
    }
    

    总结:利用fill可以将容器区间内元素填充为 指定的值

    吾生也有涯,而知也无涯
  • 相关阅读:
    转char varchar nvarchar区别
    NHibernate和Spring.Net框架介绍(一)
    ASP.NET面试题(一)
    存储过程编写经验和优化措施
    软件工程师不可不知的10个概念
    优化数据库前问自己的10个问题
    ZOJ 1610 Count the Colors (线段树)
    POJ 3667 Hotel (线段树)
    HDU Best Reward (扩展KMP)
    POJ 3277 City Horizon (线段树)
  • 原文地址:https://www.cnblogs.com/daimasanjiaomao/p/13998258.html
Copyright © 2011-2022 走看看