STL初始化initializer_list
2024-10-15 11:14:19
#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; }
最新文章
- C#学习资源
- 【开源】OSharp3.3框架解说系列(7.1):初始化流程概述
- javascript获取表单值的7种方式
- Theano3.3-练习之逻辑回归
- C++学习基础二——指针与引用的区别
- mahout协同过滤算法
- makefile中使用变量
- HDU 1098 Ignatius&#39;s puzzle
- MVC json
- CSS下拉菜单
- Day1作业要求
- window.setInterval与window.setTimeout使用实例
- 在mac上安装Docker
- 应用 memcached 提升站点性能
- Linux Django项目部署
- bzoj1018/luogu4246 堵塞的交通 (线段树)
- 【java】JDK、JRE、JVM的关系
- LintCode #2 尾部的零
- PMF:为何硅谷大神把它念奉为创业公司“唯一重要的东西”
- 【Asp.net入门5-02】创建数据模型和存储库
热门文章
- Web前端2019面试总结
- python 练习 后台返回当前时间
- 禁止微信内的H5页面上下拖动
- Windows有点腻了?不如试试Ubuntu.
- 轨迹系列4——WebGIS中使用ZRender实现轨迹前端动态播放特效
- 48.Odoo产品分析 (五) – 定制板块(3) – 修改文件和报告(1)
- 基于python的种子搜索网站,你懂得!
- Android远程桌面助手(B1371)
- Linux学习历程——Centos 7 账户管理命令(用户篇)useradd usermod userdel
- 关于nginx unit服务非正常关闭后,无法重新启动问题的处理