CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

关于 <vector>出现 cannot modify a const object

楼主JacksonLiang(Jackson)2003-06-02 15:49:16 在 C++ Builder / 基础类 提问

程序如下:  
   
  .h文件  
  using   namespace   std;  
  struct   s_LoadCode          
  {  
          int   Code;    
          char   Sign[8];  
          bool   Pass;    
          float   CountOut;  
  };  
   
  template   <   class   T   >  
  AnsiString   __fastcall   CompYESNO(FunRecordData   *p_tempFun,   HitRecord   (*temphit)[100],  
                                      int   p_Groupnum,   int   p_TimeIn,   vector<   T   >   &SrcCode);  
                                       
   
  //--------------------  
  .cpp文件  
  template   <   class   T   >  
  AnsiString   __fastcall   myClass::CompYESNO(FunRecordData   *p_tempFun,   HitRecord   (*temphit)[100],  
                          int   v_GroupNum,   int   v_TimeIn,     vector<   T   >   &SrcCode)  
  {  
        vector<   T   >::const_iterator   p_CodePos;//搜查位置  
    p_CodePos   =   SrcCode.begin();    
    (*p_CodePos).Pass   =   false;     //****   这句出问题     ****  
  }  
                           
  //---------------  
  调用  
  vector<s_LoadCode>   LoadCode_GroupC;  
  CompYESNO(CScore,   CHit,   CGROUP,   TimeIn,   LoadCode_GroupC);  
   
   
  //*****************************************************************  
    (*p_CodePos).Pass   =   false;     //这句出问题        
    cannot   modify   a   const   object;                          
    请问是什么原因,如何解决? 问题点数:60、回复次数:5Top

1 楼zbc(修身养息,百战不怠)回复于 2003-06-02 16:18:31 得分 40

你的问题在于:  
  你所定义的迭代指针为常量,也就是无法对当前的元素进行修改,所以会出现cannot   modify   a   const   object;   这样的错误  
  另外,你使用迭代指针来访问元素中的pass成员时,不应该使用.符号,应该要使用->Top

2 楼lluunn007(书生)回复于 2003-06-02 16:20:21 得分 20

你定义的是常量类型,又修改他?Top

3 楼JacksonLiang(Jackson)回复于 2003-06-02 16:27:43 得分 0

to:zbc(咖啡小子)    
  我刚才用->访问成员,但编译不通过,不知是否还有地方要修改  
   
  可否再讲详细点,告诉我什么地方要修改Top

4 楼zbc(修身养息,百战不怠)回复于 2003-06-02 16:42:39 得分 0

你为结构s_LoadCode         typedef一个类型,然后,使用重新定义的类型来声明向量看看  
  Top

5 楼JacksonLiang(Jackson)回复于 2003-06-02 16:46:58 得分 0

问题解决了。  
  vector<   T   >::const_iterator   p_CodePos;这句出问题  
  谢谢zbc(咖啡小子)   ,lluunn007()   ,结贴  
  Top

相关问题

  • c++ const object问题
  • c++ const object问题
  • ●●●●●请问const vector< int > *pvec, const vector< int > ivec的区别 性能差异●●●●●
  • const?
  • const
  • typedef const vector<unsigned int>* (*pfunc)(int)请解释一下意思。
  • 在vc6里面怎么不能写const vector<string> &items( pItems->second );
  • 如何将Object强制转换为Vector?
  • Vector
  • 关于Object Pascal,const Bit1=$10000是什么意思?

关键词

  • 修改
  • vector
  • codepos
  • loadcode
  • compyesno
  • srccode
  • timein
  • 使用
  • 问题
  • pass

得分解答快速导航

  • 帖主:JacksonLiang
  • zbc
  • lluunn007

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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