如何解决有没有一种方法可以将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();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。