将SNAP TIntPrSet转换为std :: set

时间:2019-10-28 14:44:01

标签: c++

我有一组SNAP库构造的成对的整数:

TIntPrSet EdgeSet(Graph->GetEdges());
for (TUNGraph::TEdgeI EI = Graph->BegEI(); EI < Graph->EndEI(); EI++) {
  EdgeSet.AddKey(TIntPr(EI.GetSrcNId(), EI.GetDstNId()));
  EdgeSet.AddKey(TIntPr(EI.GetDstNId(), EI.GetSrcNId()));
}

我需要将TIntPrSet转换为std :: set。为此,我编写了以下代码:

std::set<pairs> NewEdgeSet;
for (TUNGraph::TEdgeI EI = Graph->BegEI(); EI < Graph->EndEI(); EI++) {
  NewEdgeSet.insert(std::make_pair(EI.GetSrcNId(), EI.GetDstNId()));
  NewEdgeSet.insert(std::make_pair(EI.GetDstNId(), EI.GetSrcNId()));
}

我想知道是否有更简单的方法(例如,如果我们想将std数组转换为set,我们可以简单地执行std::set<T> set(begin(array), end(array));

0 个答案:

没有答案