나는이처럼 보이는 각 노드 라인의 연결 목록이있는 파일을 처리 해요 :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
어떤 아이디어? linelist_ptr
합법적 인 값, 즉을 가지고
충분한 정보를 제공하지 않았습니다. 당신이 제공 한 코드는 당신이 묘사하는 방식대로 실패 할 수 없으므로 여기에 넣지 않은 다른 코드가 실패 할 수도 있습니다. – Omnifarious
'std :: list'를 사용하지 않는 이유는 무엇입니까? (Homework?) 또는 더 나은,'std :: vector' 또는'std :: deque'. – GManNickG
당신의 구현이 우연히'char *'를'string :: iterator'로 사용하는지 확인해 주시겠습니까? '#include'그리고'std :: cout << typeid (std :: string :: iterator) .name()'을 수행하고 그 결과를 말할 수있다. –