c ++ std :: vector search for value

Estoy intentando optimizar unstd::vector "búsqueda" - índice basado en iteración a través de un vector y retorno y elemento que coincide con un criterio de "búsqueda"

struct myObj {
   int id;
   char* value;
};

std::vector<myObj> myObjList;

Crea unos pocos miles de entradas con unico.id's y valores y empujarlos al vectormyObjList.

¿Cuál es la forma más eficiente de recuperarmyObj que coincide con elid. Actualmente estoy indexando iteraciones como:

for(int i = 0; i < myObjList.size(); i++){
   if(myObjList.at(i).id == searchCriteria){
    return myObjList.at(i);
   }
}

Nota:searchCriteria = int. Todos los elementos tienen elementos únicos.id's. Lo anterior hace el trabajo, pero probablemente no de la manera más eficiente.

Respuestas a la pregunta(4)

Su respuesta a la pregunta