C++ 可变参数函数、initializer_list、省略号形参

本文深入探讨了C++中的可变参数函数和初始化列表的概念。可变参数函数利用省略号(...)实现参数数量的灵活性,而initializer_list则允许处理相同类型的一组参数。通过示例,解释了如何使用和操作initializer_list,包括其拷贝、赋值特性和在构造函数中的应用。此外,还展示了如何使用va_list处理整型和字符串类型的可变参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、可变参函数

含义:能够接收非固定个数参数的函数就是可变参数函数;

initializer_list标准库类型,用于处理可变参数问题,该类型能够使用的前提条件是,所有的实参类型相同

二、initializer_list (初始化列表)

如果一个函数,它的实参数量不可预知,但是所有参数的类型相同,我们就可以使用这个initializer_list类型的形参来接收。

initializer_list 是 C++ 11中提供的新类型,也是一个类模板。

我们把initializer_list理解成某种类型值得数组。这个类模板里指定的类型模板参数就是这个数组里保存的数据的类型。

包含头文件

#include <initializer_list> 或 #include <iostream>
initializer_list<int> array;	//数组,元素类型是int,空列表(空数组)

initializer_list<int> array1 = {
    10, 20, 30, 40, 50 };

注意:initializer_list对象中的元素永远是常量值,不能被改变。

1. begin()、end()、size()

void Func(initializer_list<string> array)
{
   
	/*for (auto iter = array.begin(); iter != array.end(); ++iter)
	{
		cout << (*iter).c_str() << " ";
	}*/

	for (const auto& it : array)	//用引用更节省性能
	{
   
		cout << it << " ";
	}
	cout << endl;
	cout << array.size() << endl;	//打印列表中元素数量
}

int main(int argc, const char* argv[]) 
{
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值