我正在研究我自己的字符串类,但我在使用这个“拆分”函数时遇到了问题。这个想法是传递一个字符,该函数查找该字符,在它的每个实例处拆分字符串,然后将结果字符串存储到一个向量中。例如。单词树的 split('r') 将返回一个包含“t”和“ee”的向量。这是我的功能:
std::vector<String> String::split(char c) const{
std::vector<String> result;
int start = 0, end;
int i = 0;
while(ptr[i] != 0) {
if(ptr[i] == c) {
end = i;
result.push_back(substr(start, end - 1));
start = end + 1;
}
++i;
}
result.push_back(substr(start, length() - 1));
return result;
}
每次我运行它时,它都会给我一个 bad_alloc 错误。有任何想法吗?
编辑 1:我的 substr() 占据开始和结束位置,不像 std::string substr()