奇怪的问题

hbjoylee 2010-07-17 07:14:15
定义了一个 Student类,含有room_number和building成员,对vector<Student> 中的
所有对象的这个两个成员进行赋值,同时输出赋值结果,但是在使用for输出时却发现两个输出明显不一样。
对对象赋值使用了这个函数
typedef vector<string> vs;
//stru_dorm提供room_number和 building_number 信息
void allocate_dorm(vector<Student> &stu,vector<vs> &stu_dorm)
{
//对每个对象的room_number ,building_number进行赋值
//同时进行输出查看

}



for (vector<Student>::iterator it=student.begin();it<student.end();++it)
{
cout<<(*it).building_number<<" " <<(*it).room_number;
cout<<endl;
}
//结果上下两个输出明显不一样
比如在allocate_dorm中 赋值168 608后 输出为 168 608
for中的输出则会变为 169 612 ( 这是另一个楼栋号和房间号的组合)
求达人解释
...全文
56 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbjoylee 2010-07-19
  • 打赏
  • 举报
回复
终于找到原因了,是我赋值的时候,给迭代器赋错了初值。
许文君 2010-07-17
  • 打赏
  • 举报
回复
不是这里的问题,代码贴全看看
晒月光的青蛙 2010-07-17
  • 打赏
  • 举报
回复
这个代码看的比较晕
dvlinker 2010-07-17
  • 打赏
  • 举报
回复
应该没问题的啊,就是vector的使用嘛,你把完整代码拷出来看看~

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧