Mọi người!Xóa [] tương đương với mỗi lần xóa phần tử. C++
phép nói rằng tôi đang viết lớp Array và muốn tối ưu hóa xây dựng
data = reinterpret_cast<T*>(new char[sizeof (T) * size]);
for (int i = 0; i < size; ++i) {
new(&data[i]) T(some_value);
}
Và bây giờ tôi đang tự hỏi làm thế nào để nhớ chính xác giải phóng:
delete[] data;
for (int i = 0; i < size; ++i) { data_[i].~T(); }
Bạn đang cố gắng viết lại ['std :: array'] (http://en.cppreference.com/w/cpp/container/array)? – NathanOliver
Điều gì sẽ xảy ra nếu mảng được phân bổ không phải là căn chỉnh đúng cho T? –
@NathanOliver, tất nhiên tôi không cố gắng làm điều này :-) Đó là tất cả trí tưởng tượng tò mò của tôi. – aob