有没有一种方法可以将Armadillo向量转换为C ++中的字符串?

问题描述

我想知道是否有一种方法可以将Armadillo向量转换为std字符串。例如,如果我有这个向量:

arma::vec myvec("1 2 3"); //create a vector of length 3 

我如何生产:

std::string mystring("1 2 3");

吗?

解决方法

使用ostringstream.raw_print().st().substr()的组合,如下所示。

// 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);

如果要更改格式,请查看fmtflags

std::ostringstream ss;
ss.precision(11);
ss.setf(std::ios::fixed);
,

这应该有效:

std::ostringstream s;
s << myvec;
std::string mystring = s.str();

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...