关于map中内存管理的一些理解

关于map估计大家都已经再熟悉不过了,但是要是说到内存如何分配,和管理,可能你会说那都是底层的东西,一般用不到,那么今天就自己最近研究的一点心得和大家说说。

map中本来底层自己带了一个allacte内存分配器,但是基于以前的代码经验和习惯,每次都是自己new一个类,然后再插入到map,灾后在释放的时候在自己手动释放类,这样看起来没问题,但是如果我在家不想控制内存这块,让map帮我处理,可以吗? 这个当然可以。

以下是一个简单的例子

class A

        {

public:

A() { }

A(const A& a) {}  //这个很关键

~A() { }

}

void main( ) 

{

std::map<int,A> map;

A a;

map.insert(std::make_pair(1,a));

}

只是在类里面加了一个构造函数,就可以实现map自动实现内存分配管理,如果类中还有指针,还是需要在析构函数中手动释放和管理,这个map只是管理了当前最高层的一个类的内存分配,如果有特殊需要或者类里面没有太多指针,主要是要频繁的插入和删除这些类,如果手动开辟内存会造成系统底层频繁调用和形成小的碎片,会成为系统运行瓶颈。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值