获取集合的方法
考虑下面的需求,从配置文件中,读取一些数据,这些数据放到一个集合中,获取集合,使用方法A,完成任务。该怎么做?
1、首先明确一点,坚决不能让A返回引用。
2、方法A在栈上创建集合,返回集合。不存在内存泄漏的问题,但是要付出copy代价。
3、方法A在堆上创建集合,返回集合的指针,copy代价很低,但是会存在内存泄漏的问题。
4、主调方法创建一个集合,把集合的引用传递给被调方法A,A修改集合的内容。这个不直观,客户要一些东西,方法A要求客户准备一个容器,A在容器中填充内容。
5、采用哪种方法,要看具体的使用场景,如果集合内容很小,copy代价小,就不要用指针,否者用指针。
6、还要考虑另外一种情况,返回的集合是要客户维护,还是A维护。比如,客户在一个循环中,每次都需要集合,这就会导致A重复读取配置文件。解决这个问题的办法是:客户在循环之前,先把集合保存起来。但是,考虑下面的情况,程序中很多地方,不同的客户,都需要这个集合,那么方法A应该维护集合,读取一次,内部保存起来,下次客户再申请,直接返回就行了。这就意味着,程序运行过程中,集合的内存是不能释放的,可以使用指针,为了避免内存泄漏,可以使用智能指针。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理