我有一个链表,其中包含指向第一个和最后一个节点的指针以及指示列表中有多少个节点的大小。\n我有一个返回第一个节点的函数。
\n我希望能够使用 更改第一个节点中的 m_data queue1.front() = 3;。然而,我得到
invalid conversion from \xe2\x80\x98int\xe2\x80\x99 to \xe2\x80\x98Node<int>*\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\n编译时出错
\ninvalid conversion from \xe2\x80\x98int\xe2\x80\x99 to \xe2\x80\x98Node<int>*\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\ntemplate <class T>\nclass Node {\npublic:\n Node(const T& t);\n ~Node() = default; // Destructor\n Node(const Node&) = default; // Copy Constructor set to default\n Node& operator=(const Node&) =\n default; // Assignment operator set to default\n T& getData();\n const T& getData() const;\n Node* getNext();\n void setNext(Node<T>* newNext);\n\nprivate:\n T m_data;\n Node* m_nextNode;\n};\n\ntemplate <class T>\nNode<T>::Node(const T& t) {\n …Run Code Online (Sandbox Code Playgroud) 我有一个链表,其中包含指向第一个和最后一个节点的指针以及指示列表中有多少个节点的大小。\n我已经为指向节点地址的队列实现了迭代器,我已经成功了实现 begin()、end() 和 ==、!=,并进行了测试,\n但我无法为迭代器实现 ++() 和 ++(int) 运算符,我希望 ++ 运算符更改节点到链表中下一个节点的地址,当我尝试编译时出现以下错误:no matching function for call to \xe2\x80\x98Node<int>::getNext() const\xe2\x80\x99\n以及如何使迭代器运算符重载工作而无需typename在声明开头键入
Node班级:
template<class T>\nclass Node {\n public:\n Node(const T& t);\n ~Node()=default; // Destructor\n Node(const Node&) = default; // Copy Constructor set to default\n Node& operator=(const Node&) = default; // Assignment operator set to default\n T& getData();\n const T& getData() const;\n Node* getNext();\n void setNext(Node<T>* newNext);\n private:\n T m_data;\n Node* m_nextNode;\n};\n\ntemplate<class T>\nNode<T>::Node(const T& t) {\n this->m_data=t;\n this->m_nextNode=nullptr;\n}\n\ntemplate<class T>\nNode<T>* …Run Code Online (Sandbox Code Playgroud)