版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.youkuaiyun.com/qq_40946921/article/details/90648688
不知道大家知不知道Java的可变参数列表(即函数形参使用 类型。。。类型名 这样的写法),这样写的好处就是写函数的时候参数的个数是可以变化的。
当然C语言中也提供了。。。,比如我们熟知的printf,scanf就是使用。。。完成的,但为什么已经有了。。。,还需要 initializer_list呢?
其实printf和scanf有一个共同点大家有没有发现,那就是第一个参数为格式化字符串,而C语言的。。。必须要通过第一个参数来获取后面参数的个数,而scanf()和printf()就是通过字符串中的格式控制符来确定后方参数个数的。
但万一有些人就是不守这个规矩呢?前面第一个参数就说后面有4个参数,但调用的时候后面却只跟2个参数,就跟你去银行取钱,明明账户上只有三块五,你非要取出个几万块?可能吗,难不成你还抢银行,去特殊机构体验个十年八年的,岂不美哉?那么如果是程序,会发生什么问题?肯定得报错啊,不信的话你可以用printf或scanf试试(专治各种不服=.=)
于是,initializer_list也就应运而生了!
nitializer_list是一个模板类,可能你已经用过它了但不知道而已,比如下面的代码就用了:
#include<iostream>
#include<vector>
&