#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <vector>
#include <time.h>
//: Poly.cpp
#include <iostream>
#include <initializer_list>
using namespace std;

/*  initializer_list 是C++11新增的,可以使用它来初始化STL:
           例如:std::vector<double> payments {45.9,39.3,19.59,89.1};
           上述声明与下述代码等价(这里显式的将列表指定为构造函数参数):
           std::vector<double> payments ({45.9,39.3,19.59,89.1});

在C++11 可以使用 {} 而不是 () 来 调用类的构造函数:
           shared_ptr<double> pd{new double};   //ok to use {} instead of ()
*/

/*   提供initializer_list 类的初衷,旨在能够将一系列的值换递给构造函数或其他函数。
     注意:initializer_list 的迭代器类型为const,因此不能修改initializer_list中的值。
    即不能这么做:
            *dl.begin() = 20.0;    错误做法。
    但可以将一个initializer_list 赋给另一个 initializer_list :
             dl={16.0,25.0,36.0,49.0,64.0};

*/
#include<iostream>
#include<initializer_list>

double sum(std::initializer_list<double> il);
double average(const std::initializer_list<double> &ril);

int main(int argc,char **argv){
    using std::cout;
    using std::endl;

    cout<<,,})<<,,})<<endl;
    std::initializer_list<double> dl={1.1,2.2,3.3,4.4,5.5};
    cout<<"List 2:sum = "<<sum(dl)<<", average= "<<average(dl)<<endl;

    dl={16.0,25.0,36.0,49.0,64.0};
    cout<<"List 3:sum = "<<sum(dl)<<", average= "<<average(dl)<<endl;

    ;
}
double sum(std::initializer_list<double> il){
    ;
    for(auto p = il.begin();p != il.end();++p){
        tot += *p;
    }
    return tot;

}

double average(const std::initializer_list<double> &ril){
    ;
    int n = ril.size();
    double ave = 0.0;
    ){
        for(auto p = ril.begin();p != ril.end();++p){
            tot+=*p;
        }
        ave = tot / n;
    }
    return ave;
}

最新文章

  1. C#学习资源
  2. 【开源】OSharp3.3框架解说系列(7.1):初始化流程概述
  3. javascript获取表单值的7种方式
  4. Theano3.3-练习之逻辑回归
  5. C++学习基础二——指针与引用的区别
  6. mahout协同过滤算法
  7. makefile中使用变量
  8. HDU 1098 Ignatius&#39;s puzzle
  9. MVC json
  10. CSS下拉菜单
  11. Day1作业要求
  12. window.setInterval与window.setTimeout使用实例
  13. 在mac上安装Docker
  14. 应用 memcached 提升站点性能
  15. Linux Django项目部署
  16. bzoj1018/luogu4246 堵塞的交通 (线段树)
  17. 【java】JDK、JRE、JVM的关系
  18. LintCode #2 尾部的零
  19. PMF:为何硅谷大神把它念奉为创业公司“唯一重要的东西”
  20. 【Asp.net入门5-02】创建数据模型和存储库

热门文章

  1. Web前端2019面试总结
  2. python 练习 后台返回当前时间
  3. 禁止微信内的H5页面上下拖动
  4. Windows有点腻了?不如试试Ubuntu.
  5. 轨迹系列4——WebGIS中使用ZRender实现轨迹前端动态播放特效
  6. 48.Odoo产品分析 (五) – 定制板块(3) – 修改文件和报告(1)
  7. 基于python的种子搜索网站,你懂得!
  8. Android远程桌面助手(B1371)
  9. Linux学习历程——Centos 7 账户管理命令(用户篇)useradd usermod userdel
  10. 关于nginx unit服务非正常关闭后,无法重新启动问题的处理