我有一个对象:
map<A*, string> collection;
Run Code Online (Sandbox Code Playgroud)
我想调用map :: find函数,但是我对key的值是const,就像下面的代码一样,它不能编译:
const A* a = whatever();
collection.find(a);
Run Code Online (Sandbox Code Playgroud)
以下代码工作并执行与查找操作等效的操作:
const A* a = whatever();
map<A*, string>::iterator iter;
for(iter = collection.begin(); iter != collection.end(); ++iter)
if(iter->first == a)
break;
// iter now contains the result or map::end (just like map::find)
Run Code Online (Sandbox Code Playgroud)
但它可能没有find成员函数那么高效,而且它也很丑陋,掩盖了代码的意图.
我怎样才能调用find函数?
谢谢
编辑:
我故意在地图中使用指针类型作为键.我想要的行为是地图使用键的指针相等.(就像在我的循环代码中一样)