CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  工具平台和程序库

stl问题

楼主madmanahong(疯子阿虹)2003-08-01 20:43:29 在 C/C++ / 工具平台和程序库 提问

1.stl和抽象..  
   
              for_each(v.begin(),v.end(),mem_fun(&CWnd::ShowWindow(0)));  
   
      其中v是一个vector,里面存放了CButton,CListCtrl等控件!这些都是从CWnd派生的  
  为什么会出错!  
   
   
  2.set和map容器大家有什么好例子?用处是什么?  
  解释..  
   
  thx.  
   
  问题点数:20、回复次数:8Top

1 楼mechgoukiteng(变态是一种生活态度)回复于 2003-08-01 21:27:36 得分 15

第一个问题我不回答,mfc好久不用了,脸红....  
   
  set和map被称为关联类型容器,相对于vector,string,list这类而言,好处是供了对数级的插入和删除保证,因为它们本身就是排序好的,缺点是因为底层一般使用tree结构,会多使用几个指针,会影响内存分页  
   
  所以一个例子是,排序后的vector使用2分查找的算法(名字记不住,再次脸红)会比使用map::find要快!  
   
  Top

2 楼echoher(Est Sularus oth Milthas)回复于 2003-08-02 10:46:31 得分 1

for_each()的第三个参数是个单参数的防函数,mem_fun(&CWnd::ShowWindow(0))不符合要求  
   
  在同时要求好的插入和查找时间(不能花时间一次排序)时,用set和map较好  
   
  multimap的最好例子是字典Top

3 楼echoher(Est Sularus oth Milthas)回复于 2003-08-02 10:48:55 得分 1

这样写试试,但mem_fun要改  
  for_each(v.begin(),v.end(),mem_fun)Top

4 楼madmanahong(疯子阿虹)回复于 2003-08-02 17:21:55 得分 0

那第一种方式如何想办法完成?  
   
  谢谢!Top

5 楼riverboat(诸葛不亮)回复于 2003-08-03 22:12:36 得分 1

第一个问题可能涉及到虚拟函数的调用问题  
  建议不要用For_each函数了,,直接枚举吧:  
  for(vector:iterator   i=v.begin;   i!=v.end;   i++)  
      (*i).ShowWindow(0);  
  Top

6 楼madmanahong(疯子阿虹)回复于 2003-08-04 22:31:13 得分 0

使用mem_fun1怎么样呢  
  ?Top

7 楼hlnpro(错误!死机?晕~~~)回复于 2003-08-05 00:59:23 得分 2

mem_fun要是函数对象或者函数指针!Top

8 楼madmanahong(疯子阿虹)回复于 2003-08-07 21:35:15 得分 0

谁说的,mem_fun的类成员函数指针!  
  应该没有错误...  
   
  我就怀疑是参数..Top

相关问题

  • STL?
  • STL……
  • stl????
  • stl....
  • about stl:
  • about stl
  • 何为STL,ADT。。。??
  • 什么叫STL
  • STL问题
  • stl巨烦

关键词

  • 函数
  • vector
  • mem
  • 参数
  • fun
  • showwindow
  • 例子
  • cwnd
  • 问题
  • 使用

得分解答快速导航

  • 帖主:madmanahong
  • mechgoukiteng
  • echoher
  • echoher
  • riverboat
  • hlnpro

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo