Récupérer le premier élément en c++ vecteur

J'ai écrit une classe wrapper pour effectuer l'insertion/suppression des opérations sur un type de vecteur.
Le code:

class GenericSymbolTable {
   public:
       virtual void pushBackAtom(Atom *atom) = 0;
       virtual Atom* peekAtom(void) = 0;
       virtual Atom* getAtom(void) = 0;

   protected:
      ~GenericSymbolTable(void){}
};

class SymbolTable : public GenericSymbolTable {
   private:
       vector<Atom*> atoms;

   protected:
       ~SymbolTable(void);

   public:
       void pushBackAtom(Atom *atom);
       Atom* peekAtom(void);
       Atom* getAtom(void);
};

Lors de l'écriture de l'implémentation de ces méthodes le compilateur renvoie contradictoires des erreurs de type:

   Atom* SymbolTable::peekAtom(void) {
      if(atoms.empty()) {
          cout << "\t[W] Simbol table does not contain any atoms" << endl;
          return NULL;
      }

      Atom* first = atoms.begin(); //<== type error
      return first;
   }

   Atom* SymbolTable::getAtom(void) {
      if(atoms.empty()) {
          cout << "\t[W] Simbol table does not contain any atoms" << endl;
          return NULL;
      }

      Atom* first = atoms.begin(); //<== type error
      atoms.erase(atoms.begin());
      return first;
   }

Msg d'erreur:
impossible de convertir de ‘std::vector::iterator {aka __gnu_cxx::__normal_iterator >}’ à ‘Atom*’ dans l'initialisation de la

  • Un itérateur peut être, et n'est probablement pas un type pointeur.
InformationsquelleAutor Sebi | 2012-09-29