如何连接向量<;int>;到C+中的单个int+;? 我如何将一个INTS向量转换成C++中的一个int?< /P> vector<int>myints = {3, 55, 2, 7, 8} vectoryints={3,55,2,7,8}

如何连接向量<;int>;到C+中的单个int+;? 我如何将一个INTS向量转换成C++中的一个int?< /P> vector<int>myints = {3, 55, 2, 7, 8} vectoryints={3,55,2,7,8},c++,vector,int,C++,Vector,Int,预期答案:355278这里有一个快速而肮脏的方法: using namespace std; vector<int> myints = {3, 55, 2, 7, 8}; stringstream stream; for(const auto &i : myints) { stream << i; } int value = stoi(stream.str()); 使用名称空间std; 向量myints={3,55,2,7,8}; 溪流; 用于(常

预期答案:
355278

这里有一个快速而肮脏的方法:

using namespace std;

vector<int> myints = {3, 55, 2, 7, 8};
stringstream stream;

for(const auto &i : myints)
{
    stream << i;
}

int value = stoi(stream.str());
使用名称空间std;
向量myints={3,55,2,7,8};
溪流;
用于(常量自动&i:myints)
{

stream这里有一个快速而肮脏的方法:

using namespace std;

vector<int> myints = {3, 55, 2, 7, 8};
stringstream stream;

for(const auto &i : myints)
{
    stream << i;
}

int value = stoi(stream.str());
使用名称空间std;
向量myints={3,55,2,7,8};
溪流;
用于(常量自动&i:myints)
{

stream诀窍在于,您需要计算每个数字包含多少位数。您可以使用
中的
log10
来执行此操作。您可以通过
pow(10,x)
移动总数,其中
x
是要添加的位数:

#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

int main() {
    vector<int>myints = {3, 55, 2, 7, 8};
    int total = 0;
    for (auto it = myints.begin(); it != myints.end(); ++it) {
        int x = int(log10(*it)) + 1;
        total = total * pow(10, x) + *it;
    }
    cout << total << endl;
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main(){
向量Yints={3,55,2,7,8};
int-total=0;
for(auto it=myints.begin();it!=myints.end();++it){
int x=int(log10(*it))+1;
总计=总计*功率(10,x)+it;
}

cout诀窍在于,您需要计算出每个数字包含多少位数。您可以使用
中的
log10
来执行此操作。您可以通过
pow(10,x)
移动总数,其中
x
是要添加的位数:

#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

int main() {
    vector<int>myints = {3, 55, 2, 7, 8};
    int total = 0;
    for (auto it = myints.begin(); it != myints.end(); ++it) {
        int x = int(log10(*it)) + 1;
        total = total * pow(10, x) + *it;
    }
    cout << total << endl;
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main(){
向量Yints={3,55,2,7,8};
int-total=0;
for(auto it=myints.begin();it!=myints.end();++it){
int x=int(log10(*it))+1;
总计=总计*功率(10,x)+it;
}

cout这应该可以完成工作。请注意,
int
可能不足以处理位数

#include <vector>
#include <sstream>

int vectorToSingleInt(const std::vector<int> &myints)
{
    std::stringstream stringStream;

    for (int &i : myints)
        stringStream << i;

    int output = 0;
    stringStream >> output;

    return output;
}
#包括
#包括
int vectorToSingleInt(常量std::vector和myints)
{
std::stringstream-stringstream;
用于(整数和整数:整数)
stringStream>输出;
返回输出;
}

这应该可以完成工作。请注意,
int
可能不足以处理位数

#include <vector>
#include <sstream>

int vectorToSingleInt(const std::vector<int> &myints)
{
    std::stringstream stringStream;

    for (int &i : myints)
        stringStream << i;

    int output = 0;
    stringStream >> output;

    return output;
}
#包括
#包括
int vectorToSingleInt(常量std::vector和myints)
{
std::stringstream-stringstream;
用于(整数和整数:整数)
stringStream>输出;
返回输出;
}
使用
库和
+=
运算符,您可以迭代整数向量,将每个数字转换为字符串并打印结果:

#include <vector>
#include <iostream>
#include <string>
using namespace std;

int main() {
  vector <int> myints = {3, 55, 2, -1, 7, 8};

  string s = "";
  for(int i : myints){
      s += to_string(i);
  }

  cout << s;      //prints 3552-178
}
#包括
#包括
#包括
使用名称空间std;
int main(){
向量myints={3,55,2,-1,7,8};
字符串s=“”;
用于(整数i:myints){
s+=至_字符串(i);
}
cout使用
库和
+=
运算符,您可以迭代整数向量,将每个数字转换为字符串并打印结果:

#include <vector>
#include <iostream>
#include <string>
using namespace std;

int main() {
  vector <int> myints = {3, 55, 2, -1, 7, 8};

  string s = "";
  for(int i : myints){
      s += to_string(i);
  }

  cout << s;      //prints 3552-178
}
#包括
#包括
#包括
使用名称空间std;
int main(){
向量myints={3,55,2,-1,7,8};
字符串s=“”;
用于(整数i:myints){
s+=至_字符串(i);
}

你知道如何处理-1吗?循环和乘法似乎可以解决这个问题。提示:
8+7*10+2*100+55*1000+3*100000
。或者使用
的循环,你需要检查
log10(x)
查看将现有数字乘以多少。如何处理-1?循环和乘法似乎可以解决问题。提示:
8+7*10+2*100+55*1000+3*100000
。或者使用
的循环需要检查
log10(x)
查看将现有数字乘以多少。这不是我的方法,但可能比我的解决方案更好地处理负数。在第二个示例中,没有必要声明stringstream,因为它从未像我这样使用过,但可能比我的解决方案更好地处理负数。没有必要声明stringstream第二个示例中的流,因为它从未使用过。要清除编译器警告,最好使用static_cast,按照警告所说的进行解释。要清除编译器警告,最好使用static_cast,按照警告所说的进行解释。