郑州快速网站优化公司首选,常州网站推广排名,安装wordpress步骤,鲜花网网站开发的意义可变参数模板可以接收不定数量的参数#xff0c;比如printf函数就是这样#xff0c;可以传任意数量的参数 templateclass ...Args
void test(Args... args)
{//...
}
Args是一个函数模板参数包#xff0c;args函数形参参数包 如何获取参数包的值
1.递归获取
void…可变参数模板可以接收不定数量的参数比如printf函数就是这样可以传任意数量的参数 templateclass ...Args
void test(Args... args)
{//...
}
Args是一个函数模板参数包args函数形参参数包 如何获取参数包的值
1.递归获取
void _test()
{cout endl;
}templateclass T, class ...Args
void _test(T val, Args... args)
{cout val ;_test(args...);
}templateclass ...Args
void test(Args... args)
{_test(args...);
}int main() {test(1, 2, 3, acb);return 0;
}
2.逗号表达式展开获取
templateclass T
void test(T t)
{cout t ;
}templateclass ...Args
void getg(Args... args)
{int arr[] { (test(args), 0)... };cout endl;
}int main() {getg(1, 2, 3, acb);return 0;
} 应用
STL容器中的emplace和emplace_back就是可变参数相较于push_back使用时需要传入类对象emplace_back可以直接传 类的构造函数的参数
int main() {std::mapint, const char* m;m.insert(make_pair(1, a));m.emplace(2, b);for (auto e : m){cout e.first e.second endl;}
}