Я реализую связанный список. Я получаю сообщение об ошибке:
P1LinkedList.cpp:145: error: call of overloaded ‘to_string(int&)’ is ambiguous
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/basic_string.h:2604: note: candidates are: std::string std::to_string(long long int)
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/basic_string.h:2610: note: std::string std::to_string(long long unsigned int)
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/basic_string.h:2616: note: std::string std::to_string(long double)
(я компилирую свой код с помощью g++ -std=c++0x
Метод, генерирующий это исключение:
std::string P1LinkedList::print(){
std::string print = "";
iterator itr = begin();
for(int i = 0; i < theSize; i++){
print += std::to_string(itr.current->data) + " ";
itr++;
}
return print;
}
current
это текущий узел, на который указывает итератор. data
- это int
, который находится в классе Node.
Node.h:
#ifndef Node_h
#define Node_h
struct Node{
int data;
Node* next;
Node* prev;
Node(const int & d = 0, Node *p = 0, Node *n = 0);
};
#endif
Часть моего const_iterator .h файл, в котором объявлен current
(мой класс iterator
расширяется от класса '' 'const_iterator' '':
protected:
Node *current;
int& retrieve() const;
const_iterator(Node*p);
friend class P1LinkedList;
};
Я пытаюсь передать data
через to_string
как обычное значение int
, которое, как я думал, itr.current->data
делал, но мог ли я получить эту ошибку, потому что она не передает значение типа int, а вместо этого указывает на него?