当前位置: 首页 > news >正文

参数包展开到初始化列表

上次写过参数包展开和静态断言的使用——Accumulator-CSDN博客,数组是静态定义的,并且递归展开参数包。这里改用动态数组,并且将参数包展开到初始化列表中,成为一个动态数组。

#include <stdio.h>
#include <vector>
using namespace std;class Accumulator {
public:Accumulator(int n);void reset(void);double& operator[](int ii);void add(const vector<double>& b);template <typename... T>void add(T... args);private:vector<double> a;
};int main(void) {Accumulator a(3);//a.add(1);/*C2398	元素“1”: 从“int”转换到“_Ty”需要收缩转换*/a.add(1.5,5.0,3.0);printf("%g %g %g\n",a[0],a[1],a[2]);a.add(7.0,2.5,6.0);printf("%g %g %g\n",a[0],a[1],a[2]);a.add(10.0,20.0);printf("%g %g %g\n",a[0],a[1],a[2]);return 0;
}Accumulator::Accumulator(int n) :a(n,0) {}void Accumulator::reset(void) {a.assign(a.size(),0);
}double& Accumulator::operator[](int ii) {return a[ii];
}void Accumulator::add(const vector<double>& b) {for (int i=0;i<a.size()&&i<b.size();i++)a[i]+=b[i];
}template<typename... T>
void Accumulator::add(T... args) {add(vector<double>{args...});
}
http://www.dtcms.com/a/170375.html

相关文章:

  • 高频数据冲击数据库的技术解析与应对方案
  • 《操作系统真象还原》第十二章(2)——进一步完善内核
  • 短信登录功能实现(黑马点评)
  • 山东大学计算机组成与设计第七章习题解析
  • 评估动态化烹饪工艺与营养实训室建设要点
  • NAPPING: 1.0.1靶场(Vulnhub系列)
  • Java框架“若依RuoYi”前后端分离部署
  • 视频编解码学习二之颜色科学
  • 通过Docker部署Prometheus + Grafana搭建监控平台【超详细版】
  • 机器学习常用评价指标
  • 海外新版本开发高端Apple/科技汽车/共享投资理财平台系统
  • FastAPI系列14:API限流与暴力破解防护
  • 机器人编程基础---C语言中的表达式和求值
  • Docker Compose:服务编排:批量管理多个容器
  • QT中的JSON
  • MIT6.S081-lab8前置
  • 硬件零基础入门(尚硅谷)
  • 3392. 统计符合条件长度为 3 的子数组数目
  • UDP网络编程
  • python使用cv2在图片上话矩形框
  • 数据结构的基本概念以及算法的基本内容
  • [UVM]在SoC中用寄存器模型backdoor访问寄存器的案例
  • MaC QT 槽函数和Lambda表达式
  • 打印Activity的调用者
  • 2444. 统计定界子数组的数目
  • 简介QML中的Canvas
  • 【Mytais系列】SqlSession
  • 传奇各版本迭代时间及内容变化,屠龙/嗜魂法杖/逍遥扇第一次出现的时间和版本
  • JVM——JVM 是如何处理异常的?
  • 双指针算法详解(含力扣和蓝桥杯例题)