trong khi chơi và cố gắng để tính toán tổng kích thước của vector tôi đã cố gắng một cái gì đó giống nhưTôi có thể sử dụng value_type trên một thể hiện của các véc tơ, không theo loại
vector<double> vd;
auto area = vd.size()* sizeof (vd::value_type);
//Ive seen Stepanov use area as name for this kind of size, idk if he adds the sizeof vd also to area :)
Thật không may doesnt làm việc này ... tôi cần phải sử dụng vector<double>::value_type
nhưng điều đó làm cho mã ít đọc được hơn. Nó có thể được thực hiện để làm việc? Tôi không thích sizeof vd.front()
bởi vì nó chỉ trông xấu xí để viết front()
cho việc này.
EDIT: decltype cũng biến thể phù hợp với những gì tôi sẽ gọi loại xấu xí ...
Đối số để sizeof là không được đánh giá theo cách bạn đề nghị - nghĩ về nó theo cách này: trình biên dịch nhìn vào những gì 'vd.front 'trả về và áp dụng sizeof ở kiểu đó, không có cuộc gọi hàm nào xảy ra ở đây. – Fiktik
đọc những gì tôi đã nói ... tôi biết kích thước của thời gian biên dịch ... chỉ .front() là xấu vì nó không báo hiệu ý định ... nó có thể là .back() [.size() - 1]. .. – NoSenseEtAl
lời xin lỗi của tôi cho từ ngữ xấu ... thay thế "gọi" với "viết" nó rất dễ dàng để viết một điều trong khi suy nghĩ cái gì khác ...:/ – NoSenseEtAl