首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++映射函数中的向量相等

c++映射函数中的向量相等
EN

Stack Overflow用户
提问于 2013-01-05 20:55:24
回答 1查看 71关注 0票数 0

有一段代码我改成了更清晰的代码。这就是它:

代码语言:javascript
复制
map <TwoWayHostPair, Traffic> traffic;
static map <TwoWayHostPair, Traffic>::iterator trafficItr;

trafficItr = traffic.find(hostPair);
if (trafficItr == traffic.end()) { 
      trafficItr = traffic.insert(make_pair(hostPair, Traffic())).first;
}

这不是完整的代码。这只是代码的一部分。所以它不会编译不是答案,现在它编译了

traffic.first是类TwoWayHostPair的属性。我认为if(trafficItr == traffic.end())的意思是如果trafficItr不等于traffic,这可能是不正确的。

有人知道我的说法是不是真的吗?另外,如果它是真的,当trafficItr等于traffic时,结果会是什么?它是不是像trafficItr == traffic.begin()一样

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-05 20:57:21

这不是正确的c++代码。find返回映射中元素的迭代器,如果没有找到元素,则返回结束迭代器。将map赋值给find的结果将不会编译。此外,您不能将一个map与另一个map的结束迭代器进行比较。还请注意,您必须传递以查找TwoWayHostPair的实例或可转换为此类实例的内容。

代码的概念如下:

代码语言:javascript
复制
map <TwoWayHostPair, ClassA> variableA, variableB;
//variableA is set to a proper value

map <TwoWayHostPair, ClassA>::iterator iter;
iter = variableB.find(TwoWayHostPair_instance)

if(iter == variableB.end())
     //do something

就是只有在map中找不到元素时才执行某些操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14171992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档