首先,我有一套
std::set<int*> my_set;
然后,我有一个函数用于检查特定的 int 指针是否p
存在于 中,它只my_set
返回true
指针是否存在于其中,false
否则返回。
由于函数不会修改被引用的int
,所以很自然的将指针当做 a const int*
,即
bool exists_in_my_set(const int* p)
{
return my_set.find(p) != my_set.end();
}
但是,当我尝试编译代码时,出现以下错误:
error: invalid conversion from 'const int*' to 'std::set<int*>::key_type {aka int*}' [-fpermissive]
换句话说,const int*
当int*
我调用find
.
无论如何,我的问题是:我怎样才能找到p
,my_set
或者至少找出是否p
存在于my_set
,使用现有的定义p
和my_set
?