C++11可变参数函数与for循环

周立功CAN盒二次开发实录:用QT5.1.0解析汽车CAN报文(附数据可视化技巧) 本文详细介绍了基于QT5.1.0和周立功USBCAN-E-U设备进行汽车CAN总线二次开发的实战过程。核心内容包括利用CANdb++数据库解析原始报文并转换为物理值,以及通过QCustomPlot库实现高性能实时数据可视化,为车载诊断与车联网开发提供了一套完整的工程实践方案。 阅读详情



//auto为自动变量类型设置符 例如 auto p = 1; 则p为int类型; auto自动适应类型

//对于template < typename T, typename ... Args >说 参数表是一个T类型和一个 ...Args类型打包
//对于 void func( T value, Args ... args ) 说 参数表是一个T类型的数据value和一个Args类型打包的数据打包args
//那么进行调用  func( n, m, 'a', str ); 时候, 调用了 void func( T value, Args ... args )
// n对应了value 而m, 'a', str 打包对应了args;
// 输出了value; 然后在进行一次打包 调用func( args ... ); 相当于func( m, 'a', str );
// 然后m对应了value 剩下两个数打包, 继续递归调用 直到打包args里包含0个元素的时候;
// 调用func( args ... ); 相当于无参函数 即调用了 func(); 则调用结束;


#include <iostream>
#include <string>

void func()
{

}

template < typename T, typename ... Args >
void func( T value, Args ... args )
{
 std::cout << value << ", ";
 func( args ... );
}

int main()
{
 int p[] = { 1, 2, 3, 4, 6, 7, 8, 2 };
 for( auto point : p )       //从p数组中取出每一个数字 给point 然后输出point;
 {
  std::cout << point << " ";    //auto自动设置point类型
 }

 std::cout << std::endl;

 for( auto &point : p )      //如果类型较大 应该使用引用传递, 提高效率
 {
  if( point == 4 )
  {
   point = 2;        //修改其中的值 按值传递和引用传递都可以改值
  }
  std::cout << point << " ";
 }

 std::cout << std::endl;

 int n = 14;
 double m = 15.5;
 std::string str = "asdf";
 func( n, m, 'a', str );
 
 return 0;
}

VS2019+EasyX图形库实战:手把手教你用C语言打造消消乐小游戏(附完整源码) 本文详细介绍了如何使用VS2019和EasyX图形库从零开始构建一个C语言消消乐小游戏。通过环境配置、数据结构设计、界面绘制、交互实现到游戏逻辑完善的完整流程,帮助开发者掌握图形编程和游戏开发的核心技巧,并附有完整源码供参考。 阅读详情

相关推荐

SV fork join_none & for循环结合使用

fork join_none与循环联用常见问题解决方案

ZhangShuHuai11的博客 880

c++11新版本"for循环的使用"和"auto的使用"

贪吃蛇游戏的c++版本,从GitHub上clone下来的,在startinterface.cpp文件中有如下代码: void StartInterface::PrintText() {   for (auto & point : textsnake)     {       if(point.GetX() >= 0)         point.Print();   ...

天下月色共三分的博客 3855

Lumerical官方案例、FDTD时域有限差分法仿真学习(十四)——超透镜(Metalens)

这个例子的目的是设计一个由圆柱形纳米棒组成的衍射超透镜。 纳米棒的半径和排列经过调整以在超透镜表面上产生所需的相位分布。 该设计通过近场和远场分析在 Ansys FDTD、RCWA(严格耦合波分析)和 OpticStudio 中得到验证。...

weixin_45719141的博客 3万+

【C++】:auto的for循环

人生如逆旅,我亦是行人。autoauto。

W_Oilpicture的博客 5842

CATIA CAA开发环境搭建避坑指南:从授权服务到VS配置全流程

本文提供了一份详尽的CATIA CAA开发环境搭建避坑指南,涵盖从授权服务(DSLS)安装、Visual Studio版本匹配与集成配置,到编译调试全流程。重点解析了授权服务无法连接、模块加载失败等典型问题的解决方案,强调版本严格对应与纯英文环境是成功搭建的关键。

redis7keeper的博客 572

从养殖场到科技前沿:YOLOv11+OpenCV精准计数鸡蛋与鸡

YOLOv11结合OpenCV技术,精准识别和计数鸡蛋与鸡,广泛应用于养殖场、市场监控和自动化包装。通过深度学习与计算机视觉,提升农业生产效率,让智能化管理更简单高效。

专注于深入研究多种编程语言,以实战为导向,逐步拓展开发技能,提升工程化编码和思维能力,展现无敌技术实力。 1206

c++ auto_ptr类 智能指针

int main() { std::auto_ptr p; std::auto_ptr p2; p = std::auto_ptr(new int); *p = 11; p2 = p; // std::cout << "p points to " << *p << '\n'; //p is now null-pointer auto_ptr std::cout << "p2 point

鑫的专栏 610

Megatron-LM从头训练大语言模型:并行策略图示【Tensor并行、Pipeline并行、Data并行、Sequence并行、virtual_pipeline并行、Context并行】

节点包含的层每GPU的参数内存每GPU的激活内存节点0Stage 0层1-1212层参数/2 (TP切分)8k序列激活 (CP切分)节点1Stage 1层13-2412层参数/2 (TP切分)8k序列激活 (CP切分)节点2Stage 2层25-3612层参数/2 (TP切分)8k序列激活 (CP切分)节点3Stage 3层37-4812层参数/2 (TP切分)8k序列激活 (CP切分)负载均衡:每个节点处理相同数量的层(12层)内存优化。

u013250861的博客 285

C++函数传参 与 for(auto a:b)

for(auto &a:b) , for(auto a:b) , for(const auto &a:b) b为数组或容器,是被遍历的对象 #include <iostream> using namespace std; int main() { /* b为数组或容器,是被遍历的对象 for(auto &a:b),循环体中修改a,b中对应内容也会修改 for(auto a:b),循环体中修改a,b中内容不受影响 for(const auto &a:b

m0_52169223的博客 751

STM32G4 电机外设篇(三) TIM1 发波 和 ADC COMP DAC级联

STM32G4电机控制外设应用笔记摘要:本文详细介绍了TIM1高级定时器生成三对互补PWM波的配置方法(预分频器PSC=30000,重装载值ARR=10000),重点说明需断开电机连线避免干扰。通过STM32CubeMX配置TIM1通道4触发ADC采样,设置RCR分频参数,并给出Keil代码修改要点。第二部分探讨了TIM1、ADC、比较器和DAC的级联应用,包括电流采样触发时序(在PWM波峰值前采样)和过流保护机制。配置步骤包含DAC3作为比较器负输入端、设置Break触发封波保护,并附关键代码段实现外设联

qq_43091070的博客 1102

Deeplabv3+改进1:添加CBAM注意力机制|有效涨点

我们提出卷积块注意力模块(CBAM),这是一种简单而有效的前馈卷积神经网络注意力模块。给定一个中间特征图,我们的模块会依次沿两个独立维度(通道和空间)推断注意力图,然后将注意力图与输入特征图相乘,以实现自适应特征细化。由于 CBAM 是一个轻量级且通用的模块,它可以无缝集成到任何 CNN 架构中,几乎不会增加开销,并且可以与基础 CNN 一起端到端训练。我们通过在 ImageNet-1K、MS COCO 检测和 VOC 2007 检测数据集上进行的大量实验验证了 CBAM。

AIcurator的博客 1691

218. 天际线问题

218. 天际线问题题目描述思路分析代码实现 题目描述 点这里 思路分析 扫描线问题。扫描线常伴随“线段树”,故该题归类于数据结构。 每段维护最高的边,根据点要分类讨论。细节先学“扫描线” 代码实现 class Solution { public: vector<vector<int>> getSkyline(vector<vector<int>>& buildings) { vector<vector<int&gt

Keep studying 748

射频微波电路设计【1.4】

AppCAD是一组射频设计工具和计算机应用说明,它使射频工程师能以更快和更容易的方式设计他们的产品。该软件的理 念是为工程师提供一个“个人设计助理”,即功能强大、快速和容易使用的辅助设计工具。该软件包括如下基本功能: ·各种传输线电气参数的分析与计算;·各种匹配电路的分析与计算;·各种有源和无源简单电路的分析与计算;·射频系统指标的计算:增益、噪声系数、三阶交调、信噪比、灵敏度等;·器件可靠性分析。

qq_43416206的博客 2322

C++11一些其他特性

在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。

2301_79274600的博客 1076

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

c++11的重要特性2

可变参数模板在3中。

weixin_50470247的博客 683

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【C++】04-C++新标准C++11&14-笔记(侯捷系列)

1、全文检索工具:Windows Grep。 便于根据关键字查找标准库的源代码。 2、确认自己编译器支持C++11。 #define _cplusplus 201103L std::cout << _cplusplus; #if _cplusplus >= 201103L ... #else ... #endif 3、使用数量不定的模板参数时,要注意递归的边界。 void print() { } template<typename T, typename... Types

江湖人称菠萝包 648

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【C++】C++11的部分特性

【C++】C++11的部分特性

m0_62714628的博客 264

C++ 一些有用的函数和特性

此函数返回 x 的最低位的 的位置+1。比如说因为 10 的二进制为 1010, __builtin_ffs(10) 返回 ,因为最低位的1在第1位,加上1以后返回 2。在 C++ 中,lambda 表达式允许捕获外部变量以便在其体内使用。你不需要为gcd函数编写欧几里得算法,从现在开始我们可以使用了。此函数返回两个数字的 gcd。现在,您可以使用单引号 ( ' ) 分隔数字的数字,以提高可读性。可以在代码里嵌入一段原始字符串,该原始字符串不作任何转义。包围,包含如何捕获外部变量的信息。

dmc__man的博客 566

[C++]22:C++11_part_one

默认成员函数:构造+析构 拷贝构造+拷贝赋值构造 取地址重载+const取地址重载 -------> 移动构造+移动赋值 , 一共有8个默认成员函数!1.如果你没有自己实现移动构造函数,且没有实现析构函数 、拷贝构造、拷贝赋值重载中的任意一个。那么编译器会自动生成一个默认移动构造。默认生成的移动构造函数,对于内置类型成员会执行逐成员按字节拷贝,自定义类型成员,则需要看这个成员是否实现移动构造,如果实现了就调用移动构造,没有实现就调用拷贝构造。

2201_75943325的博客 1167

【C++11】

简单介绍一下C++11多了哪些新东西(相对于C++98而言)

double__main__的博客 1070

C++11

c++11

大学在读,感谢关注 730

c++2.0新特性(c++11/14)

语言部分 1. Variadic Templates可变参数模板 可以设计不同个数,不同类型的参数模板。 2. nullptr nullptr 出现的目的是为了替代 NULL。 在某种意义上来说,传统 C++ 会把 NULL、0 视为同一种东西,这取决于编译器如何定义 NULL,有些编译器会将 NULL 定义为 ((void*)0),有些则会直接将其定义为 0。 nullptr 的类型为 null...

shayne000的博客 1281

C++11新特性

注意事项:1、必须进行初始化,只用推导一个类型 2、无法推出const属性 2、推不出引用。

m0_71530237的博客 362

C++11中的一些新特性以及代码详解

C++11的一些新特性以及相应的代码理解

820

C++11——不可错过的船新版本

详细介绍C++11中更新的内容,包括初始化列表,新的声明方式,STL的变化,右值引用,移动语义,完美转发,可变参数模板,lambda表达式以及包装器等内容

Dai_renwen的博客 1088

C++11 常用新特性

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

marenol0的博客 671
上一篇: 深度搜索C++对象模型 - 构造语义学
下一篇: C++类型转换
zhang_yao_wu1993
博客等级 码龄12年 0粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值