0

我正在使用 MVSE 2012 C++ 和 Boost。但是我收到一个错误: 这不是鸡。 相信我。 这是供参考的代码。我只是想获取诸如下午 5:00 之类的输入,将其转换为整数 5、整数 00 和字符串 PM。(后来我想操纵这些信息)。

#include <iostream>
#include <boost/tokenizer.hpp>
#include <string>
#include <stdlib.h>

int main() 
{typedef boost::tokenizer<boost::char_separator<char> > 
    tokenizer;
    boost::char_separator<char> sep(": ");
    int value1 [2];
    tokenizer tokens1(str1, sep);
        for (tokenizer::iterator tok_iter1 = tokens1.begin();
        tok_iter1 != tokens1.end()-1 ; ++tok_iter1)
            for (int iii=0; iii <= 1; iii++)
                value1[iii] = atoi(str1.c_str());   
   return 0;
}
4

1 回答 1

4

看起来 boost::tokenizer::iterator 不支持 operator- 在此代码部分:

tokens1.end()-1

改用 boost::prior(tokens1.end()) 或 std::advance(tokens1.end(), -1)

于 2013-06-16T05:58:16.243 回答