Zuweisen eines std::vector aus einem C-Style-Array
In verschiedenen Szenarien ist es notwendig, einen std::vector zuzuweisen unter Verwendung eines Arrays im C-Stil. Betrachten Sie die folgende Klasse mit einem Vektor, der mit Daten initialisiert werden muss, die als Array im C-Stil übergeben werden:
class Foo { std::vector<double> w_; public: void set_data(double* w, int len){ // how to cheaply initialize the std::vector? } };
Anstatt die Größe des Vektors zu ändern und über die Elemente zu iterieren oder std::copy() zu verwenden, Es gibt einen effizienteren Ansatz. Unter Ausnutzung der Tatsache, dass Zeiger als Iteratoren behandelt werden können, kann der Vektor schnell zugewiesen werden mit:
w_.assign(w, w + len);
Diese Syntax weist den Bereich vom Zeiger w bis w len zu und initialisiert den Vektor effektiv mit den Werten aus dem Array im C-Stil.
Das obige ist der detaillierte Inhalt vonWie initialisiere ich schnell einen std::vector aus einem C-Style-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!