能用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++序列化框架

 

 

 

 

 

 

 

posted @   是金子就会灿烂  阅读(2415)  评论(8编辑  收藏  举报
编辑推荐:
· 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,谁才是开发者新宠?
点击右上角即可分享
微信分享提示