这样做有一般的区别吗?
(*ptr).method()
Run Code Online (Sandbox Code Playgroud)
VS
ptr->method()
Run Code Online (Sandbox Code Playgroud)
我在另一个问题的评论中看到了这个问题,我想在这里问一下.虽然我记得几乎C++中的每个操作符都可以重载,所以我想答案将取决于.但总的来说,做一个与另一个之间有区别吗?
我知道find方法在std :: map中找到提供的键,并将迭代器返回给元素.反正有没有找到值并获得元素的迭代器?我需要做的是检查std :: map中是否存在指定的值.我通过循环地图中的所有项目并进行比较来完成此操作.但我想知道有没有更好的办法.
这是我写的
bool ContainsValue(Type_ value)
{
bool found = false;
Map_::iterator it = internalMap.begin(); // internalMap is std::map
while(it != internalMap.end())
{
found = (it->second == value);
if(found)
break;
++it;
}
return found;
}
Run Code Online (Sandbox Code Playgroud)
编辑
如何在内部使用另一个存储值,键组合的地图.所以我可以打电话找到它吗?std :: map中的find()是否进行顺序搜索?
谢谢
我目前正在使用map<int, int>C++.我可以检查密钥的存在而没有问题但是有一种有效的方法来检索特定值具有的密钥吗?我的目的是获取具有给定值的所有元素,然后更新它们的值.