Heim >Backend-Entwicklung >C++ >Wie initialisiere ich schnell einen std::vector aus einem C-Style-Array?

Wie initialisiere ich schnell einen std::vector aus einem C-Style-Array?

DDD
DDDOriginal
2024-11-16 12:09:02923Durchsuche

How to Quickly Initialize a std::vector from a C-Style Array?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn