У меня проблема с форматированием этого связанного списка в то, что говорится в комментарии TODO.Я получаю ошибку:
In file included from main.cpp:3:0:
Graph.h: In member function ‘std::__cxx11::string Graph::formatList()’:
Graph.h:63:14: error: invalid operands of types ‘std::__cxx11::string* {aka std::__cxx11::basic_string<char>*}’ and ‘LinkedListPtr {aka LinkedList<char>*}’ to binary ‘operator<<’
str << adjList << endl;
~~~~^~~~~~~~~~
Graph.h:65:17: error: could not convert ‘str’ from ‘std::__cxx11::string* {aka std::__cxx11::basic_string<char>*}’ to ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’
return str;
^~~
Мой вопрос в основном состоит в том, как использовать оператор <<=
в этой ситуации.
Я пытался создать строку и добавить связанныйперечислите его, я попытался использовать str <<
, как видно из кода, и cout <<
, но эта библиотека не включена в этот класс.
string formatList(){
/* TODO (2):
*
* Return a string representation of the list.
*
* Each list should be written on a separate line, using the LinkedList's
* <<() function.
*
* Sample:
* [ B, D ]
* [ A ]
* [ D ]
* [ A, C ]
*/
string str;
str << adjList << endl;
return str;
}// end displayList()
Вот перегруженный метод <<=
method
virtual string toString() const{
ostringstream oss;
oss << "[ ";
if ( !isEmpty() ) {
nodeptr_t iter = head->next;
while ( iter->next != tail ) {
oss << iter->element << ", ";
iter = iter->next;
}
oss << iter->element << " ";
}
oss << "]";
return oss.str();
}// end toString()
Я ожидаю, что результат будет выглядеть следующим образом:
[ B, D ]
[ A ]
[ D ]
[ A, C ]
Вместо очевидной ошибки.
Спасибо.