Stl String 分割字符串的一种简洁方法

#include <sstream>
#include <iostream>
#include <string>
#include <vector>
#include <iterator>

using namespace std;


int main(int argc, char **argv)
{
    string s("hello world bye");
vector<string> vect;
vector<string>::const_iterator vectIter;
stringstream ss;
ss.clear();
ss.str(s);
    vect.assign(
        istream_iterator<string>(ss),
        istream_iterator<string>()
    );
vectIter = vect.cbegin();

while (vectIter != vect.cend())
{
cout << *(vectIter++) << endl;
}

    return 0;
}


gcc编译时报错:

error: ‘class std::vector<std::__cxx11::basic_string<char> >’ has no member named ‘cbegin’

error: ‘class std::vector<std::__cxx11::basic_string<char> >’ has no member named ‘cend’

原因大概是C++11才支持cbegin和cend,makefile中添加CPPFLAGS := -g -O -Wall -std=c++11,编译通过。


结果输出空格分割后的字符:

hello
world
bye

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值