假设我有两个大小相同的向量,vector< pair<float, NodeDataID> > v1, v2;
我想计算 v1 和 v2 中有多少元素具有相同的 NodeDataID。例如 if v1 = {<3.7, 22>, <2.22, 64>, <1.9, 29>, <0.8, 7>}
, and v2 = {<1.66, 7>, <0.03, 9>, <5.65, 64>, <4.9, 11>}
, 那么我想返回2因为 v1 和 v2 中有两个元素共享相同的 NodeDataID:7 和 64。
在 C++ 中最快的方法是什么?
仅供参考,请注意类型NodeDataIDs
是在我使用 boost 时定义的:
typedef adjacency_list<setS, setS, undirectedS, NodeData, EdgeData> myGraph;
typedef myGraph::vertex_descriptor NodeDataID;
但这并不重要,因为我们可以使用运算符 == 来比较两个 NodeDataID(也就是说,可以做v1[i].second == v2[j].second
)