关于C++编写可变参数的函数

来源:互联网 发布:淘宝店主阿希哥微博 编辑:程序博客网 时间:2024/05/21 14:55

在C++primer(5th)的6.2节中提出了一种编写能处理不同数量的实参的函数的方法。若是传递的所有参数类型相同,可以调用标准库类型<initializer_list>,initializer_list可以用来表示某种特定类型的值的数组。和vector一样,initializer_list也是一种模板类型,但是initialize_list的对象永远是常量。

编写一个比较函数来说明initializer_list的基本用法:

#include "stdafx.h"#include<string>#include<iostream>#include<initializer_list>using namespace std;void compare(initializer_list<string> li) //定义compare函数,传递特定类型initializer_list<string>数组;{for (auto beg = li.begin(); beg != li.end(); ++beg){cout << *beg << " " ;}cout << endl;}void _tmain(int argc, _TCHAR* argv[]){string a, b;cin >> a >> b;if (a != b){compare({ "Different", a, b }); //传递一个值的序列,须将序列放在一个花括号类;}if (a == b){compare({ "Same", "words" }); //第二次调用只传递两个参数;}}





原创粉丝点击