我听说精神在将字符串转换为int时非常快.
但是我无法创建一个可以这样做的简单函数.就像是
int string_to_int(string&s){/*?????*/}
任何人都可以使用提升精神来填补这个功能.
顺便说一句,我正在使用boost 1.34而不是最新版本.
hka*_*ser 11
有几种方法可以实现这一目标:
#include <boost/spirit/include/qi_parse.hpp>
#include <boost/spirit/include/qi_numeric.hpp>
namespace qi = boost::spirit::qi;
std::string s("123");
int result = 0;
qi::parse(s.begin(), s.end(), qi::int_, result);
Run Code Online (Sandbox Code Playgroud)
或更短:
#include <boost/spirit/include/qi_parse.hpp>
#include <boost/spirit/include/qi_numeric.hpp>
#include <boost/spirit/include/qi_auto.hpp>
namespace qi = boost::spirit::qi;
std::string s("123");
int result = 0;
qi::parse(s.begin(), s.end(), result);
Run Code Online (Sandbox Code Playgroud)
这是基于Spirit的auto功能.如果将其中一个包装到一个函数中,就可以得到你想要的东西.
编辑:我现在才看到你正在使用Boost 1.34.所以这里有相应的咒语:
#include <boost/spirit.hpp>
using namespace boost::spirit;
std::string s("123");
int result = 0;
std::string::iterator b = s.begin();
parse(b, s.end(), int_p[assign_a(result)]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2659 次 |
| 最近记录: |