获取集合的方法

左心房为你撑大大i 提交于 2019-11-27 01:24:45

考虑下面的需求,从配置文件中,读取一些数据,这些数据放到一个集合中,获取集合,使用方法A,完成任务。该怎么做?

1、首先明确一点,坚决不能让A返回引用。

2、方法A在栈上创建集合,返回集合。不存在内存泄漏的问题,但是要付出copy代价。

3、方法A在堆上创建集合,返回集合的指针,copy代价很低,但是会存在内存泄漏的问题。

4、主调方法创建一个集合,把集合的引用传递给被调方法A,A修改集合的内容。这个不直观,客户要一些东西,方法A要求客户准备一个容器,A在容器中填充内容。

5、采用哪种方法,要看具体的使用场景,如果集合内容很小,copy代价小,就不要用指针,否者用指针。

6、还要考虑另外一种情况,返回的集合是要客户维护,还是A维护。比如,客户在一个循环中,每次都需要集合,这就会导致A重复读取配置文件。解决这个问题的办法是:客户在循环之前,先把集合保存起来。但是,考虑下面的情况,程序中很多地方,不同的客户,都需要这个集合,那么方法A应该维护集合,读取一次,内部保存起来,下次客户再申请,直接返回就行了。这就意味着,程序运行过程中,集合的内存是不能释放的,可以使用指针,为了避免内存泄漏,可以使用智能指针。

转载于:https://www.cnblogs.com/nzbbody/p/3411215.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!