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

C++ c+中的向量相等+;映射函数,c++,map,C++,Map,有一段代码我改成了更清晰的代码。这是: map <TwoWayHostPair, Traffic> traffic; static map <TwoWayHostPair, Traffic>::iterator trafficItr; trafficItr = traffic.find(hostPair); if (trafficItr == traffic.end()) { trafficItr = traffic.insert(make_pair(ho

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

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;
}
地图流量;
静态映射::迭代器流量;
trafficItr=traffic.find(主机对);
如果(trafficItr==traffic.end()){
trafficItr=traffic.insert(make_pair(hostPair,traffic())。首先;
}
这不是全部代码。这只是代码的一部分。所以它不会编译不是答案,现在它编译了

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


有人知道我的说法是否属实吗?如果为真,当
trafficItr
等于
traffic
时,结果会是什么?这是一个不正确的
c++
代码
find
返回映射中某个元素的迭代器,如果未找到该元素,则返回结束迭代器。将映射分配给find的结果将无法编译。此外,您不能将一个映射与另一个映射的结束迭代器进行比较。还要注意,您必须通过查找TwoWayHostPair的实例或可转换为该实例的东西

代码的概念类似于:

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 variableA,variableB;
//variableA设置为适当的值
迭代器iter;
iter=variableB.find(TwoWayHostPair_实例)
if(iter==variableB.end())
//做点什么

只有在地图中找不到元素时才执行操作。

地图不是向量。请参阅,例如了解
find
的结果意味着什么。是的,我的错误:)对不起inconvenience@AlokSave添加更多信息我知道这是不完整的,但这是本质。即使在比较之前,对
variableA
的赋值也不会编译这可能最好作为一个注释;指出示例代码甚至没有编译基本上会使整个问题无效!@OliCharlesworth I wa“我不希望包含更正后的版本,这不太可能作为注释。”Andy Rowl我也已经修复了它。