Element aus Vektor zurückgeben
-
Folgender Code:
class Foo { std::vector<A> liste; public: //const A& getRandomA() const { .. } };Ich möchte eine Methode schreiben, die jetzt random ein A Element aus dem Vektor liste zurückgibt (möglichst effizient)
Wenn die Signatur so aussieht:
A getRandomA() const { ... }
Dann wird das Objekt ja per Copy Ctor zurückgeliefert, oder?Ich wollte das hier machen:
const A& getRandomA() const { ... }
Ist das ok?
-
0. Ja, dann wird das Objekt ja per Copy Ctor zurückgeliefert
1. Ja, das ist ok.
2. Die Effizienz wird in vor allem von deiner random-Funktion abhängen.
-
Ok, noch was:
Wenn die Methode so aussieht:
const A& Foo::getRandomA() const { ... }Und ich schreibe:
A a = foo.getRandomA();
dann werden in der Zeile NUR Foo::getRandomA() und der Copy Ctor von A aufgerufen, oder?Also sollte ich am besten den Wert so fangen?
const A& a = foo.getRandomA();