Tôi có một mã số như sau:Thay thế 'std :: vector` với `std :: array`
int n;
int get_the_number();
void some_computations();
int main()
{
n = get_the_number();
some_computations()
return(0);
}
Các
get_the_number
chức năng nhận được một số đầu vào và trả về số nguyênn
, mà sau cuộc gọi của nó sẽ không được sửa đổi.Trong
some_computation
chức năng có đoạn mã saustd::vector<my_struct> my_array; for(int i=0; i<n; i++) { my_struct struct_temp; // fill struct_temp; my_array.push_back(struct_temp); }
Câu hỏi: Kể từ khi kích thước của my_array
được biết đến một tiên nghiệm, là nó có thể thay thế các std::vector
với một std::array
? Hơn nữa, trong trường hợp khẳng định, tôi có nên mong đợi tăng về hiệu quả không?
tôi đã cố gắng để thay thế tờ khai vector với
std::array<my_struct,n> my_array;
nhưng tôi nhận được một lỗi: kích thước của mảng phải được liên tục. Có cách nào để tránh không?
Cảm ơn bạn rất nhiều.
có vẻ như Im không nhập đủ nhanh. :) –
Cảm ơn bạn rất nhiều vì câu trả lời nhanh và rõ ràng. Tôi không biết về constexpr trước đây: Tôi có rất nhiều điều để học! – 888