gpt4 book ai didi

c++ - 尝试获取 const_iterator 以查找集合中是否存在元素时出现编译错误

转载 作者:行者123 更新时间:2023-11-28 06:14:49 26 4
gpt4 key购买 nike

template <class T>
Node<T>* LinkedList<T>::findCommonNode_hash(LinkedList<T>* list_2)

{

unordered_set<Node<T>*>* set = new unordered_set<Node<T>*>();
Node<T>* curr_list_1 = head->next;
Node<T>* curr_list_2 = list_2->head->next;
unordered_set<Node<T>*>::const_iterator itr = set->find(curr_list_1);
if(itr == set->end())
{
set->insert(curr_list_1);
}
else
return curr_list_1;
unordered_set<Node<T>*>::const_iterator itr1 = set->find(curr_list_2);
if((itr1 == set->end()))
{
set->insert(curr_list_2);
}
else
return curr_list_2;
return nullptr;
}

IDE:代码块 C++11。尝试让 const_iterator 查找元素是否存在于集合中时,出现以下错误。

 C:\Education\DataStructure_Algorithms\List\List.cpp|252|
error: need 'typename' before 'std::unordered_set<Node<T>*>::
const_iterator' because 'std::unordered_set<Node<T>*>' is a dependent scope|

最佳答案

正如错误消息所提示的那样,您必须添加 typename 关键字,因为在这种情况下 const_iterator 是一个从属名称。

像这样:

typename unordered_set<Node<T>*>::const_iterator itr = set->find(curr_list_1);

当然,对于其他类似的线路也是如此。

无论如何,您的代码似乎没有任何意义,但我想那是因为它只是在进行中。

关于c++ - 尝试获取 const_iterator 以查找集合中是否存在元素时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30550427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com