Ich habe Array verwendet, um die Daten zu speichern, aber ich habe mit Vektor ersetzt, also möchte ich alle c-Operatoren mit C++ - Operatoren ersetzen. Ich benutzen Memcpy einen SpeicherblockWie kann ich einen Vektorblock zum anderen kopieren
for (i = 0; i < rows_; i++)
memcpy((T *) &tmp.data_[cols_ * i], (T *) &a.data_[cols_ * (2 * i + 1)], rows_ * sizeof(T));
Es ist auch mit Vektoren arbeiten zu kopieren, ich möchte nur wissen, ist es eine entsprechende Funktion in C++?
habe ich versucht, die Kopie:
std::copy(tmp.data_[cols_ * i], tmp.data_[cols_ * i+rows], a.data_[cols_ * (2 * i + 1)]);
aber Ich erhalte den folgenden Fehler:
error: invalid use of member function (did you forget the ‘()’ ?)
Zum Beispiel:
ich eine 2xnxn Größe Array haben, und ich bin mit die für Zyklus, um stattdessen ein nxn-Array zu machen. zum Beispiel habe ich 1 2 3 4 5 6 7 8, mein neues Array muss das folgende sein: 3 4 7 8. Ich verwendete memcpy, um dies zu erreichen, aber ich weiß nicht, wie ich in C++
hast du versucht ['std :: copy'] (http://www.cplusplus.com/reference/algorithm/copy/)? – WhozCraig
'std :: kopieren'. In der Tat sollten Sie es auch mit Arrays verwenden. – Yuushi
Ja, ich habe versucht: std :: copy (tmp.data_ [Spalten_ * i], tmp.data_ [Spalten_ * i + Zeilen], a.data_ [Spalten_ * (2 * i + 1)]); –