VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 794|回复: 2

[求助] vector 的迭代器 是否可以做为函数内的静态局部变量?

[复制链接]
36_avatar_middle
在线会员 发表于 2016-11-18 14:00:45 | 显示全部楼层 |阅读模式
3驿站币
本帖最后由 zyc285230318 于 2016-11-18 14:08 编辑

void CVe::UpdateV(vector<ArrayValue>& arrValue)
{
        static vector<ArrayValue>::iterator iter = arrValue.begin();
       
        if(iter->strName!=NULL)            
                工作();
        else
                ++iter;


}       

目的就是想每次进入UpdateV这个函数  iter这个迭代器 都是之前保存的值
编译没事
运行 崩溃
调试 发现是
if(iter->strName!=NULL)  这句 iter 访问错误  

SYC大哥 帮忙指点下





上一篇:请问下那里有win7.h的这个头文件下载哦
下一篇:编译GHOST出现的问题,弄了一上午急死了
74_avatar_middle
在线会员 发表于 2016-11-19 09:05:50 | 显示全部楼层
作爲 static  當然可以 但 要特別小心 比如 不能 像 你這樣用
你在UpdateV函數 外部修改了vector後 迭代器 可能已經失效了 操作失效的 迭代器 將引發未定義行爲
88_avatar_middle
online_vip 发表于 2016-11-21 19:49:01 | 显示全部楼层
典型的stl不熟悉的人多看看迭代器的使用章节吧
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-4-19 11:26

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表