有没有办法在C++或Boost中解析一个直接在wstring
迭代器上工作的数字(如果可能的话unsigned long long
(?它应该和std::stoull
一样快.
Boost.Spirit 有一个基于迭代器的 API。从我读到的内容来看,它应该比标准的字符串转换函数更快。
#include <iostream>
#include <string>
#include <boost/spirit/include/qi.hpp>
int main()
{
namespace qi = boost::spirit::qi;
std::wstring s(L"4398046511104");
unsigned long long n = 0;
qi::parse( begin(s), end(s), qi::ulong_long, n );
std::cout << n << std::endl;
}
科利鲁的现场演示。