list <--> vektor <--> pair -->verschachtelung?
-
HI ich bin neu hier und blutiger anfänger in c++.
Für unsere aktuelle Übung sollen wir einen vektor mit listen in der paare sind schreiben Nr.1: http://wiki.stce.rwth-aachen.de/wiki/pub/Teaching/Winter0607/CPP/WebHome/B.pdf
Das einfragen hat auch soweit geklappt aber wie greif ich dann auf die einzelnen paare von außen zu? Hier mein Ansatz (nur pair in liste):
#include <list> list <pair< double, int> *> listeZeilen; pair < double, int> paare; void main(){ paare = make_pair(4,3); listeZeilen.push_back(&paare ); // Ausgabe fuer 1. Element list<pair<double,int>*>::iterator k_it ; k_it = listeZeilen.begin(); cout << *k_it; }irgendwie muss ich doch dann mit paare.first das ganze auslesen können, oder seh ich das falsch?
-
Erstmal solltest du keine pair* (das sind Zeiger - und durch die Art, wie du die Liste füllst, dürften am Ende alle auf den selben Wert zeigen), sondern blanke pair's in die Liste packen.
Und zweitens: Ein Iterator verhält sich (fast) wie ein Zeiger, kann also auch wie einer verwendet werden:
int main() { list<pair<double,int> > zeile; pair<double,int> wert; wert = make_pair(4,3); zeile.push_back(wert); ... list<pair<double,int>::iterator pos=zeile.begin(); cout<<pos->first<<","<<pos->second<<endl; }PS: Übrigens solltest du globale Variablen nur in Ausnahmefällen verwenden

-
Perfekt tausend dank

-
Da würde sich doch ein assoziativer Container besser eignen!
Wie lange hast du dafür Zeit?
-
Ich weiß ja nicht in wessen Tutorium du sitzt, aber ich hab meinen eindeutig gesagt, dass globale Variablen für'n Ar*** sind und dass es wie beim Übungsblatt A dafür Punktabzug gibt

Pack das lieber in eine eigene Klasse (oder Strukt falls du das kennst), dann kannst du die Objekte elegant übergeben.
-
Jaja, die Globalfans... Ob ihr es glaubt oder nicht, dynamische Programmierung ist toll. Globale Variablen sind zusammen mit Pascal ausgestorben. Das einzig globale, was noch Sinn macht, sind statische Klassenattribute. Jede gl. Var. schränkt unnötig ein, merkt euch das mal endlich. Und dafür wird es weiter Punktabzug geben! Und das nicht zu knapp.
-
CES Tutor 2 schrieb:
Jaja, die Globalfans... Ob ihr es glaubt oder nicht, dynamische Programmierung ist toll.
Was hat DP mit globalen Variablen zu tun?!
-
heißen nicht umsonst "statische" variablen, ne?
-
CES Tutor 2 schrieb:
heißen nicht umsonst "statische" variablen, ne?
Ich glaube, hier unterliegst Du einem Missverständnis. "Dynamische Programmierung" (siehe Wikipedia) ist ein Paradigma, bei dem man durch Unterteilung eines Problems bei der Errechnung einer Lösung auf Teillösungen zurückgreift, die man in einer Datenstruktur speichert und daher nur einmal berechnen muss statt in jedem Schritt erneut.
Beispiele sind der Algorithmus von Floyd-Warshall, eine effiziente Implementierung der Edit-Distanz (Levenstein) oder des Viterbi-Algorithmus. Auch Fibonacci-Zahlen kann man effizient so berechnen.
Mit dynamische bzw. statischen Variablen hat das aber nichts zu tun.
-
CStoll schrieb:
Wo ich bin, herrscht Chaos. Leider kann ich nicht überall sein.
Gibts doch zu. Du _bist_ überall.

-
Sorry für OT:
Erkenner^ schrieb:
CStoll schrieb:
Wo ich bin, herrscht Chaos. Leider kann ich nicht überall sein.
Gibts doch zu. Du _bist_ überall.

Noch nicht - aber ich arbeite daran

(und jetzt bitt BTT)