khác Tôi đã sử dụng mảng để lưu trữ dữ liệu, nhưng tôi đã thay thế bằng vectơ, vì vậy tôi muốn thay thế tất cả các toán tử c bằng toán tử C++. Tôi đã sử dụng memcpy để sao chép một khối bộ nhớLàm cách nào để sao chép một khối vectơ sang
for (i = 0; i < rows_; i++)
memcpy((T *) &tmp.data_[cols_ * i], (T *) &a.data_[cols_ * (2 * i + 1)], rows_ * sizeof(T));
Nó cũng hoạt động với vectơ, tôi chỉ muốn biết có chức năng tương đương trong c + + không?
Tôi đã thử các bản sao:
std::copy(tmp.data_[cols_ * i], tmp.data_[cols_ * i+rows], a.data_[cols_ * (2 * i + 1)]);
nhưng tôi nhận được lỗi sau:
error: invalid use of member function (did you forget the ‘()’ ?)
Ví dụ:
Tôi có một mảng kích thước 2xnxn và tôi đang sử dụng cho chu kỳ để tạo một mảng nxn thay thế. ví dụ tôi có 1 2 3 4 5 6 7 8, mảng mới của tôi phải như sau: 3 4 7 8. Tôi đã sử dụng memcpy để đạt được điều này, nhưng tôi không biết làm thế nào tôi có thể đạt được trong C++
bạn đã thử ['std :: copy'] (http://www.cplusplus.com/reference/algorithm/copy/) chưa? – WhozCraig
'std :: copy'. Trong thực tế, bạn nên sử dụng nó với mảng là tốt. – Yuushi
Có Tôi đã thử: std :: sao chép (tmp.data_ [cols_ * i], tmp.data_ [cols_ * i + hàng], a.data_ [cols_ * (2 * i + 1)]); –