über zwei vectoren gleichzeitig iterieren?
-
Definiere "Gleichzeitig":
Gleichzeitig im Sinne von Threading?
Gleichzeitig im Sinne der Syntax?EDIT: Auto ist automatische Typerkennung. So musst du nicht
vector<T>::iteratorschreiben, weil der Compiler das für dich erkennt.
-
wenn man das nicht gewusst hat und immer ausgeschrieben hat fühlt das sich wie betrug an. keine nachteile?
-
M10n schrieb:
wenn man das nicht gewusst hat und immer ausgeschrieben hat fühlt das sich wie betrug an. keine nachteile?
Nicht soweit ich weiss.
EDIT: Doch, du kannst nicht auf eine auto Variable casten, typeid oder sizeof verwenden.
-
IrgendeinName schrieb:
M10n schrieb:
wenn man das nicht gewusst hat und immer ausgeschrieben hat fühlt das sich wie betrug an. keine nachteile?
Nicht soweit ich weiss.
Gab einen Thread dazu.
-
TravisG schrieb:
Nicht das ich wüsste. Hast du einen spezifischen Grund, warum du es so machen musst?
Genau!
Halt mal nicht so hinter dem Berg mit dem eigentlichen Problem. Evtl. gibt es auch einen fertigen Algorithmus.
-
oke, werd ich mal suchen...
direkte folgefrage:
warum kann ich in einer template-funciton sowas nicht machentemplate<class T> void mean_deviation(const std::vector<T> & data , T & mean , T & deviation ) { ... for(std::vector<T>::iterator current_data_point = data.begin(); current_data_point != data.end() ; ++ current_data_point){ .. } ...also der iterator kann so nicht da stehen....
-
da fehlt ein typename:
typename std::vector<T>::iterator
-
Weil der Compiler nicht weiß, ob
iteratoreine Funktion oder ein Typ ist. Dastd::vector<T>::iteratorhier von T abhängig ist, ist es ein dependent name/type.Da der Compiler nun nicht weiter weiß, nimmt er an, dass
iteratoreine Membermethode ist. Was in einen Compiler-Fehler resultiert.Lösung:
Davor muss also ein**typename**(was genau das zurechtbiegt).
-
vielen Dank ,
auch das muss ich zu meiner schande gestehen wusste ich einfach nicht...
heisst das jeder vom template abhängige typ muss nach typedef stehen?
-
M10n schrieb:
heisst das jeder vom template abhängige typ muss nach typedef stehen?
Du meinst
typename.Ja.
-
ahh , perfekte erklärung, typename also. Vielen Dank, werde ich nicht mehr vergessen.

-
Nimm doch bitte einfach auto...
-
Kellerautomat schrieb:
Nimm doch bitte einfach auto...
wenn dein Compiler C++11 kann und es aktiviert ist.
-
Mir ist kein Commpiler bekannt, der auto nicht schon hat...
-
Kellerautomat schrieb:
Mir ist kein Commpiler bekannt, der auto nicht schon hat...
Und wie ist es bei dir mit Versionen?
-
Wie meinen?
-
Kellerautomat schrieb:
Wie meinen?
Je nach dem, unterstützt die Version seines Compilers die er installiert hat (vielleicht hat er ja GCC 4.4 oder so) automatic type deduction vielleicht noch nicht

-
Dann ist er aber selbst Schuld. Soll er halt updaten.
-
Also ich finde diese Diskussion über C++11 ein wenig verwunderlich. Es gibt Situationen, da kann man nicht einfach so mal schnell updaten. Im professionellen Bereich ist es üblich, gut abgehangene Software zu verwenden. Und das sehr lange. Bis ich mal auf der Arbeit C++11 verwenden kann, wird wohl noch 2-3 Jahre vergehen.
Bei uns wird der Compiler nicht einfach mal aktualisiert. Das geschieht nur, wenn die Hardware mal erneuert wird.
Man denke auch mal an Red Hat Linux oder andere Linux Distributionen, die länger gewartet werden. Da wird auch noch Software entwickelt.
-
Der TE ist offensichtlich keinprofessioneller Softwareentwickler...