Sortuj wektor obiektów do wyszukiwania binarnego

Mam następującą klasę:

struct EdgeExtended {
    int neighborNodeId;
    int weight;
    int arrayPointer;
    bool isCrossEdge;

};

Chcę mieć wektor takich obiektów, posortuj je według sąsiedniegoId. Następnie chcę wyszukać konkretną wartość neighndodeId i zwrócić referencję do znalezionego obiektu wewnątrz wektora poprzez wyszukiwanie binarne. Wcześniej użyłem do tego mapy, więc było to coś takiego:

map<int, EdgeExtended> neighbours;
.....

auto it = neighbours.find(dnodeId);
if (it != neighbours.end()) {
    edgeMap = it->second; 
}

Zamiast

map<int, EdgeExtended> neighbours;

chcę mieć

vector<EdgeExtended> neighbours;

i zachowuj tyle samo, co stary kod.

Chcę sprawdzić, czy wektor jest szybszy niż mapa, ponieważ buduję tysiące wektorów (lub map), a każdy wektor (mapa) jest stosunkowo mały (~ 10 elementów). Nie wiem, jak a) uczynić obiekty sortowalnymi przez SąNameND i b) Jak korzystać z przeszukiwania binarnego, które wyszukuje określonego członka klasy (Sąsiadujący). Przepraszamy za pytanie noob. Liczę na twoją pomoc.

questionAnswers(2)

yourAnswerToTheQuestion