0

我正在研究我自己的字符串类,但我在使用这个“拆分”函数时遇到了问题。这个想法是传递一个字符,该函数查找该字符,在它的每个实例处拆分字符串,然后将结果字符串存储到一个向量中。例如。单词树的 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()

4

0 回答 0