当前位置: 首页 > 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.xdnf.cn/news/262297.html

相关文章:

  • WGDI-分析WGD及祖先核型演化的集成工具-文献精读126
  • 【中间件】brpc_基础_execution_queue
  • OpenharmonyOS+RK3568,【编译烧录】
  • Ubuntu 24.04 通过 update-alternatives 切换GCC版本
  • 什么是多租户系统
  • Maven 实现多模块项目依赖管理
  • WITH在MYSQL中的用法
  • 具身系列——PPO算法实现CartPole游戏(强化学习)
  • Oracle OCP认证考试考点详解083系列04
  • 单片机嵌入式按键库
  • Maven安装配置以及Idea中的配置教程
  • C# 操作符
  • 【LeetCode Hot100】栈篇
  • 计算机视觉与深度学习 | 视觉里程计算法综述(传统+深度)
  • 复刻低成本机械臂 SO-ARM100 组装篇(打螺丝喽)
  • firewall docker 冲突问题解决(亲测有效)
  • Windows下编译WebRTC源码
  • [更新完毕]2025东三省C题深圳杯C题数学建模挑战赛数模思路代码文章教学: 分布式能源接入配电网的风险分析
  • AtCoder Beginner Contest 404(ABCDE)
  • 什么是运算符重载
  • word怎么删除空白页?word最后一页删不掉怎么办
  • 基于开源AI大模型与AI智能名片S2B2C商城小程序的线上活动执行优化研究
  • SQL中的Subquery CTE Temporary Table 区别
  • HTTP基础介绍+OSI七层参考模型+HTTP协议介绍
  • 【Elasticsearch】实现气象数据存储与查询系统
  • 总账业务数据——Part 1
  • 单片机嵌入式CAN库
  • 在 Ubuntu 上安装 cPanel
  • 【Qt】初识Qt
  • 【科研绘图系列】R语言绘制世界地图(map plot)