有什么办法可以做到这一点吗?基本上,我试图将 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
艾德酮