传递可变数量的实参
一、关键点
目的:一个函数,可以处理不同数量实参
方法:initializer_list形参、可变参数模板、省略符形参
二、initializer_list形参
适用于:可变数量的实参部分的类型相同
简介:initializer_list是一种标准库类型,用于表示某种特定类型的值的数组
特点:模板类型,该类型的对象中的元素是常量值(我们无法改变该类型对象中元素的值)
注意:要向该形参中传递一个值的序列,必须把序列放在一对花括号中
示例:
1 #include <iostream> 2 #include <vector> 3 #include <cctype> 4 #include <string> 5 #include <initializer_list> 6 7 using namespace std; 8 9 void print(initializer_list<int> a) 10 { 11 for (auto i : a) 12 cout << i << " "; 13 cout << endl; 14 } 15 16 17 18 int main() 19 { 20 cout << "传递两个实参:\n"; 21 print({1,2}); 22 cout << "传递三个实参:\n"; 23 print({1,2,3}); 24 return 0; 25 }
补充:initializer_list类型不仅仅可以在形参部分使用,它作为一个类,自然有属于自己的成员函数。
1 #include <iostream> 2 #include <vector> 3 #include <cctype> 4 #include <string> 5 #include <initializer_list> 6 7 using namespace std; 8 9 void print(initializer_list<int> a) 10 { 11 cout << "此次传来" << a.size() << "个可变参数" << endl; 12 for (auto it = a.begin(); it != a.end(); it++) 13 cout << *it << " "; 14 cout << endl; 15 } 16 17 int main() 18 { 19 cout << "传递两个实参:\n"; 20 print({1,2}); 21 cout << "传递三个实参:\n"; 22 print({1,2,3}); 23 return 0; 24 }
三、省略符形参
呸。辣鸡!
四、可变参数模板
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 【译】我们最喜欢的2024年的 Visual Studio 新功能
· 个人数据保全计划:从印象笔记迁移到joplin
· Vue3.5常用特性整理
· 重拾 SSH:从基础到安全加固
· 并发编程 - 线程同步(一)