首页 > 解决方案 > 如何使用 boost c++ 打印字符串的第 n 个拆分?

问题描述

在“二”以下的情况下,我需要获得字符串的第二次拆分。

我尝试运行此代码:

#include <boost/algorithm/string.hpp>
#include <iostream>
#include <list>
#include <string>

int main()
{
    std::string s = "one,two,three,four";
    std::list<std::string> results;

    boost::split(results, s, boost::is_any_of(","));

    std::cout << results[1] << "";
}

我收到此错误:

error: no match for 'operator[]'

我该如何解决?

标签: c++boostsplit

解决方案


cout << results[1] << "";

这不起作用,因为results它是一个std::list. std::list不提供[]运营商。在您的用例中,您应该使用 astd::vector代替。


推荐阅读