std::vector: Neues Objekt statt nur Referenz bekommen über at()



  • Hallo,

    gibt es eine Möglichkeit, ein Element aus einem std::vector statt als Referenz auch als neu konstruiertes Objekt zu bekommen?

    Ist die einzige Möglichkeit, return T(myVector.at(index)) zu schreiben?



  • gfhgfhgf schrieb:

    Ist die einzige Möglichkeit, return T(myVector.at(index)) zu schreiben?

    Gibts damit ein Problem? Du willst ein neues Objekt, du erstellst ein neues Objekt. Ist doch ganz einfach und klar, wieso sollte es dafür eine spezielle Methode in std::vector geben?



  • Bashar schrieb:

    gfhgfhgf schrieb:

    Ist die einzige Möglichkeit, return T(myVector.at(index)) zu schreiben?

    Gibts damit ein Problem? Du willst ein neues Objekt, du erstellst ein neues Objekt. Ist doch ganz einfach und klar, wieso sollte es dafür eine spezielle Methode in std::vector geben?

    ok passt.



  • gfhgfhgf schrieb:

    Ist die einzige Möglichkeit, return T(myVector.at(index)) zu schreiben?

    Ich weiß ja nicht, was der Rückgabetyp deiner Funktion ist. Wenn er ein Wert ist, wird sowieso kopiert. Wenn er eine Referenz ist, gibst du eine Referenz auf einen temporären Wert zurück. Warum lässt du es also nicht einfach normal?


Anmelden zum Antworten