C++实现Java的split()函数

来源:互联网 发布:echo.js下载 编辑:程序博客网 时间:2024/06/05 15:09

众所周知,java对于string的split函数非常好用,

但是C++标准库函数中并没有对于此函数的用法,以下是三种手动实现split()的方法:

共有三种方法:

1. 第一种

(废话),

最快的一种方法,不额外遍历string来产生一个函数,

直接边遍历,边分割,边做题。


2. 第二种

愚笨的手写方法:

vector<string> split(string str){    int start=0, end=0, size=str.size();    vector<string> result;    for (end=0; end<size; ++end) {        if (str[end]==' ') {            if (end>start) { // Avoid the multi-' ' situation                string newStr=str.substr(start,end-start);                result.push_back(newStr);            }            start=end+1;        }    }    if (end>start) {        string newStr=str.substr(start,end-start);        result.push_back(newStr);    }    return result;}


3. 第三种:

聪明的手写方法:

vector<string> split(string str){    stringstream ss;    ss<<str;    string words;    vector<string> result;    while (ss>>words) {        result.push_back(words);    }    return result;}



0 0
原创粉丝点击