Richtiger Umgang mit Vektor
In C sind Vektoren leistungsstarke Container zum Speichern von Objektsammlungen. Der Versuch, Arrays direkt in einem Vektor zu speichern, kann jedoch zu Fehlern führen, wie zum Beispiel bei der Deklaration eines Vektors aus Float-Arrays (vector
Dieses Problem entsteht, weil Arrays nicht grundsätzlich als Containerelemente unterstützt werden. Container erfordern, dass ihre gespeicherten Elemente kopierkonstruierbar und zuweisbar sind, aber Arrays erfüllen diese Anforderungen nicht.
Lösung: Verwendung von Array-Klassenvorlagen
Um diese Einschränkung zu überwinden, Es wird empfohlen, Array-Klassenvorlagen anstelle von Roharrays zu verwenden. C-Bibliotheken wie Boost, TR1 und C 0x bieten Array-Vorlagen, die die Konstruierbarkeit und Zuweisbarkeit von Kopien ermöglichen.
Zum Beispiel die Verwendung der von C 0x bereitgestellten Array-Klassenvorlage:
std::vector<std::array<double, 4>>
Alternativ , können Sie die in C TR1- oder Boost-Bibliotheken integrierten Array-Vorlagen verwenden:
std::vector<std::tr1::array<double, 4>> // or std::vector<boost::array<double, 4>>
Benutzerdefinierte Array-Klasse (Optional)
Sie können auch Ihre eigene Array-Klasse erstellen, die bei Bedarf die Kopierkonstruktion und -zuweisung implementiert und so die Kompatibilität mit der Containernutzung gewährleistet.
Das obige ist der detaillierte Inhalt vonWie kann ich Arrays ordnungsgemäß in einem C-Vektor speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!