能用STL的不要用MFC集合类
作者:朱金灿
来源:http://www.cnblogs.com/clever101
下午同事问我:“VS2005在调试时怎么看不到MFC容器变量的值呢?”我说:“这个你得问微软,自家的东西都支持不好。用STL吧,必须的。”实际上有论文论证过MFC的容器类在速度、安全方面的质量因素和STL不相上下。最让人诟病的是在调试程序时,观察MFC的容器类变量的时候悲剧了,以CArray为例,有图为证:
CArray<int,int> vec;
vec.Add(1);
vec.Add(2);
vec.Add(3);
VS 2005观察变量如下:
同样效果的代码:
std::vector<int> vec2;
vec2.push_back(1);
vec2.push_back(2);
vec2.push_back(3);
std::vector的变量值可以观察得清清楚楚的:
除了观察变量不方便之外,就跨平台方面STL理所当然做得比MFC的集合类好,另外STL和开源类库结合做得比较好,如boost。我感觉MFC的集合类比STL方便的是和MFC中的序列化类结合得比较好。STL实现序列化可以依靠boost,如果你嫌boost过于庞大,可以参考使用这个库:最便捷、最强大、速度最快的C++序列化框架。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?