C++ 有没有办法把犰狳矢量转换成C++;?

C++ 有没有办法把犰狳矢量转换成C++;?,c++,string,std,armadillo,vec,C++,String,Std,Armadillo,Vec,我想知道是否有办法将犰狳矢量转换为std字符串。例如,如果我有这个向量: arma::vec myvec("1 2 3"); //create a vector of length 3 我如何制作: std::string mystring("1 2 3"); 从它开始?这应该可以: std::ostringstream s; s << myvec; std::string mystring = s.str(); std::ostrin

我想知道是否有办法将犰狳矢量转换为std字符串。例如,如果我有这个向量:

arma::vec myvec("1 2 3"); //create a vector of length 3 
我如何制作:

std::string mystring("1 2 3");
从它开始?

这应该可以:

std::ostringstream s;
s << myvec;
std::string mystring = s.str();
std::ostringstreams;
s使用、的组合,如下所示

// vec is a column vector, or use rowvec to declare a row vector
arma::vec myvec("1.2 2.3 3.4");  

std::ostringstream ss;

// .st() to transpose column vector into row vector
myvec.st().raw_print(ss);  

// get string version of vector with an end-of-line character at end
std::string s1 = ss.str();

// remove the end-of-line character at end
std::string s2 = s1.substr(0, (s1.size() > 0) ? (s1.size()-1) : 0);
如果要更改格式,请查看:


太棒了,谢谢!你知道为什么当我打印它时,它显示为列向量而不是一行中的字符吗?我怎样才能使它成为后一种形式呢?澄清一下,如果我为(int I=0;iOops)这样做,它会显示为列向量,因为
vec
是列向量。我想,你总是可以转置它。
std::ostringstream ss;
ss.precision(11);
ss.setf(std::ios::fixed);