我有一组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));
)