Сначала вам нужно убедиться, что ваши вершины уникальны. Это если вы хотите только один край в определенной позиции. Тогда я использую эту структуру данных
typedef std::pair<int, int> Edge;
Edge sampleEdge;
std::map<Edge, bool> uniqueEdges;
Edge содержит индексы вершин, которые составляют ребро в отсортированном порядке. Следовательно, если sampleEdge является ребром, составленным из вершин с номерами индексов 12 и 5, sampleEdge.first = 5 и sampleEdge.12
Тогда вы можете просто сделать
uniqueEdges[sampleEdge] = true;
для всех краев. uniqueEdges будет содержать все уникальные ребра.