作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有如下代码
std::string some_string = "-0.003 79350 -0.267 147";
boost::algorithm::trim (some_string);
//std::cout << some_string << std::endl;
boost::tokenizer<> tok( some_string );
const auto n = std::distance( tok.begin(), tok.end() );
std::cout << n << std::endl;
我希望 token 的数量为 4,但它给出了 6。任何建议,将不胜感激。谢谢。
最佳答案
不需要boost,也更正确。
假设你真的想解析数字更正确
#include <iostream>
#include <sstream>
#include <iterator>
int main() {
std::istringstream some_string ( "-0.003 79350 -0.267 147");
std::cout << std::distance(std::istream_iterator<double>(some_string), {});
}
如果您想保留标记,而不仅仅是解析数字:
istringstream s("-0.003 79350 -0.267 147");
vector<string> vec(istream_iterator<string>(s), {});
cout << vec.size();
关于c++ - 使用 boost 生成适当数量的 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29388548/
这段代码在 Java 中的等价物是什么?我放了一部分,我对 I/O 部分感兴趣: int fd = open(FILE_NAME, O_WRONLY); int ret = 0; if (fd =
我正在尝试将维度为 d1,d2,d3 的张量 M[a1,a2,a3] reshape 为维度为 d2, d1*d3 的矩阵 M[a2,a1*a3]。我试过 M.reshape(d2,d1*d3) 但是
我是一名优秀的程序员,十分优秀!