[C++11]initializer_lisr模板类的使用

Posted Wecccccccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[C++11]initializer_lisr模板类的使用相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

代码如下:

#include <iostream>
using namespace std;

void func(initializer_list<int> ls)
{
	auto it = ls.begin();
	for (; it != ls.end(); it++)
	{
		cout << *it << " ";
	}
	cout << endl;
}

int main()
{
	func({ 1,2,5,12,23 });
	return 0;
}

测试结果:

在这里插入图片描述

在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
#include <vector>
using namespace std;


class Test
{
public:
	Test(initializer_list<string> list)
	{
		for (auto it = list.begin(); it != list.end(); it++)
		{
			cout << *it << " ";
			name.push_back(*it);
		}
		cout << endl;
	}

private:
	vector<string> name;
};

int main()
{
	Test t({ "Tom","jACK","MIKE" });
	return 0;
}

以上是关于[C++11]initializer_lisr模板类的使用的主要内容,如果未能解决你的问题,请参考以下文章

C++11新特性:8—— C++11支持函数模板的默认模板参数

[C++11 模板的改进] --- 可变参数模板

C++11新特性:9—— C++11在函数模板和类模板中使用可变参数

C++11 ——— 可变参数模板

C++11 ——— 可变参数模板

c++11新特性:变长参数模板详解