作者:朱金灿

来源: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观察变量如下:

能用STL的不要用MFC集合类 

同样效果的代码:

    std::vector<int> vec2;

    vec2.push_back(1);

    vec2.push_back(2);

    vec2.push_back(3);

 

std::vector的变量值可以观察得清清楚楚的:

能用STL的不要用MFC集合类 

   

 

     除了观察变量不方便之外,就跨平台方面STL理所当然做得比MFC的集合类好,另外STL和开源类库结合做得比较好,如boost。我感觉MFC的集合类比STL方便的是和MFC中的序列化类结合得比较好。STL实现序列化可以依靠boost,如果你嫌boost过于庞大,可以参考使用这个库:最便捷、最强大、速度最快的C++序列化框架

 

 

 

 

 

 

 

相关文章:

  • 2021-09-18
  • 2022-12-23
  • 2021-12-03
  • 2021-12-02
  • 2022-12-23
  • 2021-12-27
  • 2021-08-07
  • 2021-08-13
猜你喜欢
  • 2022-02-04
  • 2022-12-23
  • 2022-12-23
  • 2021-06-29
  • 2021-07-04
  • 2021-11-09
  • 2021-11-06
相关资源
相似解决方案