c++ 如何给list结构体分配预空间

struct A
{
    double x;
    double y;

    constexpr A(double _x = 0.0, double _y = 0.0) :x(_x), y(_y) {}//预算

};

std::list< A>B

如上述程序所示,使用链表B的时候,由于数据过多导致B不停申请空间,造成所编写的程序很卡,如何给B预申请一个很大的空间呢?大约可以存储3000个以上的单位即可,谢谢大哥们!!!

据我所知list没有说预分配内存的操作,都是插入一个元素分配一段内存。vector有,reserve函数可以预分配一段大的内存,而不构造对象,等插入的时候再调用复制构造函数。

int main(void) {

    struct A *a;
    a = (struct A *)malloc(3000);

    // 此处省略一万行代码......

    free(a);

    return 0;
}

 

这样使用!

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,欢迎您加入CSDN!

目前问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632