Я имею дело с файлом связанного списка строк с каждым узлом, глядя, как это:std :: out_of_range ошибка?
struct TextLine{
//The actual text
string text;
//The line number of the document
int line_num;
//A pointer to the next line
TextLine * next;
};
и я пишу функцию, которая добавляет пробелы в начале строки, найденной в переменной text
путем вызова функции как linelist_ptr->text.insert(0,1,'\t');
программа компилируется, но когда я запускаю его я получаю эту ошибку:
terminate called after throwing an instance of 'std::out_of_range'
what(): basic_string::at
Aborted
Любые идеи?
Вы не предоставили достаточную информацию. Код, который вы указали, не может терпеть неудачу в том, как вы описываете, так что, возможно, какой-то другой код терпит неудачу, которого вы не указали здесь. – Omnifarious
По какой причине вы не используете 'std :: list'? (Домашнее задание?) Или даже лучше, 'std :: vector', или' std :: deque'. – GManNickG
Можете ли вы проверить, случайно ли ваша реализация использует 'char *' как 'string :: iterator'? Вы можете сделать '#include', а затем 'std :: cout << typeid (std :: string :: iterator) .name()' - и сообщить результат. –