作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在将 3 个变量合并为一个变量时遇到问题:
示例:
int var1,var2,var3;
int result;
var1 = 1;
var2 = 2;
var3 = 3;
result = ........??;
printf("Result %d",result);
output :
123
我该怎么做?
最佳答案
是的,C++11 可变参数模板太棒了!这是N
-无限可扩展版本,假设sum(args) < INT_MAX
template<int max, int ...arguments>
int merge_integers()
{
int args[] = { arguments... };
int size = sizeof(args) / sizeof(int);
int mul = 1;
int result = 0;
for (int i = size; i--; )
{
result += args[i] * mul;
mul *= max;
}
return result;
}
使用示例:
printf("%d\n", merge_integers<10, 5, 4, 3, 2, 1>());
printf("%x\n", merge_integers<16, 0xA, 0xB, 0x1, 0x3, 0x5>());
printf("%o\n", merge_integers<8, 1, 2, 3, 4, 7>());
输出:
54321ab13512347
关于c++ - 如何将 3 个变量合并为 1 个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12801700/
我是一名优秀的程序员,十分优秀!