我试图在一个int变量中存储多个整数。 像这样:
int num1 = 2;
int num2 = 6;
int num3 = num1 + num2;
但是我得到8.我想要26.我知道这是我应该期待的结果,但我想要一种将整数绑在一起而不是添加它们的方法,我不能想到更好示例
谢谢!
答案 0 :(得分:5)
您可以将它们转换为字符串,添加它们并将它们转换回来(作为第二个选项效率不高)
int num3 = std::stoi(std::to_string(num1) + std::to_string(num2));
或更“肮脏”的方式(仅当num2
只是一个数字时才有效)
int num3 = num1 * 10 + num2;
请注意,第一个解决方案适用于任何数字,这也意味着如果不存储数字的长度,就无法恢复原始数字。
答案 1 :(得分:0)
那么,只是将数字相乘并推到预期位置呢?
int num3 = num1 * 10 + num2;
答案 2 :(得分:0)
我认为你想要连接两个字符串文字 Convert the int to string然后concatenate the two strings 这将为您提供连接字符串" 26"来自字符串" 2"和" 6" 如果你需要int 26那么你可以在连接后convert it back到一个int。 祝你好运: - )
答案 3 :(得分:-1)
你必须将它们存储为字符串,以便像这样连接它们:
string str_num1 = to_string(num1);
string str_num2 = to_string(num2);
string result = num1 + num2;
这是一个不好的方法,因为如果你使用任何不是1位的数字,它将变得太复杂,无法存储和/或提取数据。
使用矢量或对。更轻松,更轻松:
pair<int, int> presult = make_pair(num1, num2); ///or
vector<int> vresult;
vresult.push_back(num1);
vresult.push_back(num2); ///num1 in spot 0, num2 in spot 1
向量应该是最好的,因为它可以容纳任意大量的整数