Announcement

Collapse
No announcement yet.

Problem bezgl Iteratoren, Templates und Vektoren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem bezgl Iteratoren, Templates und Vektoren

    Hallo!

    Ich habe folgendes Problem: Ich will in meinem template vector ein Element suchen und deshalb mache ich das mit Iteratoren, aber irgendwie steh ich da ziemlich an, denn ich bekomme ständig diese Fehlermeldung (Human ist die Klasse die ich für das T verwende):

    Code:
    error: no match for 'operator!=' in '(&iter)->__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* [with _Iterator = Human*, _Container = std::vector<Human, std::allocator<Human> >]() != y'
    und das wäre der codeschnipsel dazu:


    Code:
    	void add (T x,T y)
    	{
    	std::vector<T> myVec;
    		
    		typename std::vector<T>::iterator iter=myVec.begin();
    
    		
    		while (iter != myVec.end() && *iter != x){
    			myVec.push_back(x);
    			vec_idx++;
    		}
    	}
    Was mache ich falsch? Hoffe ihr könnt mir helfen.

    LG

  • #2
    http://www.sgi.com/tech/stl/table_of_contents.html

    http://www.sgi.com/tech/stl/find.html
    Christian

    Comment


    • #3
      danke, aber mit find kann das programm kaum mehr kompilieren und die fehlermeldung its ne ewig lange textwurst. es liegt an "iter* != x" aber wieso? wie kann ich das umgehen?

      lg

      Comment


      • #4
        Was ist x??

        Mit *iter != x prüft du,ob es der 0te,1ste .... iterator ist

        danke, aber mit find kann das programm kaum mehr kompilieren und die fehlermeldung its ne ewig lange textwurst
        irgendwie ist das aber nicht normal...
        Christian

        Comment


        • #5
          x ist eine selbstgemachte klasse (human) ... irgendwie versteh ich nicht wieso er das nicht annehmen will.

          Comment


          • #6
            Du willst also mit

            *iter != x

            prüfen, ob das Objekt auf das iter zeigt identisch ist mit dem von x?

            void add (T x,T y)

            Call by value
            Call by reference

            ??
            Christian

            Comment


            • #7
              ja, genau --> das void add ist zu ignorieren

              Comment


              • #8
                Implementiere den != operator bei der Klasse von x.

                Comment

                Working...
                X