c++ string split函数实现
手动实现split函数,方便字符串的处理算法实现
·
C++ STL没有直接提供标准的字符串分割函数,一般算法实现的时候需要我们自己实现,如何实现高性能的字符串分割函数尤为重要.
下面提供一种方法,进行分割,可以直接拷贝使用
1、使用string 数组存储对应的分割
// 使用lambda表达式实现字符串分割,也可以独立成函数,看个人习惯
auto split = [](const string& s, char delim) -> vector<string> {
vector<string> vecRes;
vecAns.reserve(s.size() / 2); // 预留足够的空间,减少realloc
string strCur;
for (char c : s) {
if (c == delim) {
if (!cur.empty()) { // 忽略空字符串
vecRes.push_back(move(strCur));
}
strCur.clear();
} else {
strCur += c;
}
}
if (!strCur.empty()) {
vecRes.push_back(move(strCur)); // 如果 cur 不是空,添加到 vecRes
}
return vecAns;
};
// 使用方法如下
string strPath = "/path1//path2//../..././";
vector<string> vecSplitString = split(strPath, "/");
2、使用stringstream分割(to be continued)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)