ciao a tutti

allora ho la classe Nodo
codice:
class Nodo{
private:
    vector<short> adiacenza;
    string nome;
public:
    Nodo(){};
    void set_nome(string nome_nodo){nome=nome_nodo;};
    void mostra_nome(){cout<<nome;}
    string get_nome(){return nome;}
    void agg_nodo_adiac(short ad){adiacenza.push_back(ad);};
    int get_size_ad(){return adiacenza.size();};
    short get_ad(short i){return adiacenza[i];};
    ~Nodo(){};
};
e poi ho un vector
vector<class Nodo> nodi;

ora voglio trovare nel vector nodi se esiste un nodo con un certo nome

posso usare find?
in questo modo?

elemento = find(nodi.begin(),nodi.end(),nome_nodo_adiacente);

elemento è un iteratore dichiarato cosi:
vector <class Nodo>::iterator elemento;

perchè quando compilo mi si apre il file stl_algo.h e non va a buon fine
cosa sbaglio

grazie in anticipo