std::pair
-
way schrieb:
Ahoi zam'.
kann mir einer erklären was std::pair ist? Würde mich freuen wenn mir eventuell sogar einer nen einfach zu verstehendes Beispiel geben würde.
Danke im Voraus!std::pair, ist wie der Name schon sagt ein Wertepaar.
In etwa wie folgt:
namespace std { template<typename T1, typename T2> class pair { T1 first; T2 second; }; }
Einsatz findet dies häufig an Stellen wo man entweder 2 Werte als Rückgabe hat, ohne gleich eine eigene Struktur zu basteln, oder wo Wertepaare (wie z.B. in der std::map) verwendet werden.
Beispiel:
std::pair<int, int> foo() { // std::make_pair ist eine Templatefunktion um die Argumente nicht // zwangsweise angeben zu können return std::make_pair(1, 2); }
cu André
-
volkard schrieb:
ist ein paar. wird genommen, um zwei sachen zurückzugeben. und wird genommen, um leute zu verwirren. letzteres ist glaube ich die hauptanwendung.
int berechneUmfangUndFlaecheVomQuadrat(double a){ return std::pair<double,double>(a*a,4*a); }
Nur als HInweis:
int und std::pair<...> ist nicht kompatibel -> compiler error.
Gruss Simon
-
Im neuen Standard soll
std::pair
als deprecated markiert werden und stattdessen das flexiblerestd::tuple
mit beliebig vielen Werten zum Einsatz kommen.
-
Hallöschen
Danke erstmal für die tollen Antworten!
Wie darf ich das mit dem neuen Standard verstehen? Wird es wieder einen neuen ISO-Standard geben? Dachte das wäre alle paar Jahre...Mfg.
way
-
Hehe, davon ist hier im C++-Forum schon die ganze Zeit die Rede.
Schau dir vielleicht mal diesen Artikel an, dort siehst du eine kleine Einführung in C++0x (C++09 kann mans wohl eher nicht mehr nennen :().
-
way schrieb:
Dachte das wäre alle paar Jahre...
*lol* Guter Witz!
Der letzte ISO Standard für C++ war 1998 und auch der erste :p
Das von 2003 war nur ein Technical Report und kein eigener Standard. Wenn alles gut geht, wird der Standard im 2010 verabschiedet, also 12 Jahre nach dem letzten StandardGrüssli
-
Hallo
...also 12 Jahre nach dem letzten Standard
... ist das nicht alle paar Jahre? (:
Mfg.
way'n interessierts
-
way schrieb:
way'n interessierts
Hey! Etwas mehr Respekt für die Anliegen der C++-Programmierer!
-
way schrieb:
...also 12 Jahre nach dem letzten Standard
... ist das nicht alle paar Jahre? (:
Ähm, ich frage mich wie du in der IT überleben kannst, wenn du hier schon "alle paar Jahre" sagst ;). Ich frische mein Wissen regelmäßig auf, und versuche dies zu erweitern. Bei C++ habe ich im Vergleich zu einigen anderen Sprachen hier jedenfalls keine Hektik der Entwicklung Stand zu halten.
-
Dravere schrieb:
way schrieb:
Dachte das wäre alle paar Jahre...
*lol* Guter Witz!
Der letzte ISO Standard für C++ war 1998 und auch der erste :p
Das von 2003 war nur ein Technical Report und kein eigener Standard. Wenn alles gut geht, wird der Standard im 2010 verabschiedet, also 12 Jahre nach dem letzten StandardNö, 2003 war ein neuer Standard bzw. eine Fehlerkorrektur! Der Technical Report war erst 2006.