将向量整数拆分为这些数字的整数
Splitting vector ints into an int of those digits
有什么办法可以做到这一点吗?基本上,我试图将 int 的数字放入向量中,但相反。这样,如果矢量随机值为 5、6、7...我可以转换为值为"567"的整数。这甚至可能或可行吗?
以下函数可用于将整数向量转换为单个整数。
std::string Join(const std::vector<int>& intVector)
{
std::stringstream ss;
for (const auto& element : intVector)
{
ss << element;
}
return ss.str();
}
在上面的实现中,使用了基于范围的 for 循环,因为此功能在 c++ 11 中可用。您可以使用 normal for 循环。 要将返回的字符串值转换为整数,可以使用 std::stoi 算法 (c++ 11( 或 atoi 函数。
int Join(const std::vector<int>& intVector)
{
unsigned long sum = 0;
for (const int& i : intVector)
{
sum = (sum << 3) + (sum << 1); // sum*8 + sum*2 = sum*10;
sum += i;
}
return sum;
}
是的,这是可以实现的,只需确保向量长度在您的数据类型范围内,例如int 64 位或 int 32 位。
阅读有关数据类型范围的详细信息
伪代码
vector<int> vec{5, 6, 7};
int num = 0;
for(int x : vec)
num = num*10 + x;
cout<<num; // 567
艾德酮
相关文章:
- 检查输入是否不是整数或数字
- 如何找到大于整数的最小数字
- 在数字之间插入 + 或 - 符号以使其等于整数
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- 整数区间(或 int 数组)中每个数字的出现次数
- 当我输入字符类型的数字时,为什么我无法获得整数?
- 必须首先打印向量 v1 中最接近整数 x 的数字<int>
- 分隔整数 (C++) 的数字
- 如何优化代码以返回最接近给定整数的数字,但给定列表中不存在?
- C++:从文件中读取字符串和整数,并获得最大数字
- 如何在C ++中替换整数的前两位数字?
- 如何计算整数的十进制数字?
- 如何计算整数链中使用了多少次数字?
- 为什么这个程序接受整数和字母数字输入并打印它们? C++ 中的 std::string 也采用整数值吗?
- R 中的算术在数字上比整数更快。这是怎么回事?
- 我想使用 std::stoi 函数在 cpp 中将字符串转换为整数,因为我想在字符串中找到不同数字的总和(在下级酶中)
- C++以字符串形式打印出来的整数数字
- 使用C - CIN获取几个整数数字,然后将它们放入数组中
- C++整数数字逐行
- 为什么将'0'添加到整数数字可以转换为字符?