vector 下标越界

bendanhongcha 2015-05-13 09:39:26
vector<CString> Bl =GetDataBlHtml(pwcStrBl);
MessageBox(Bl[15],"de",MB_OK);

报错,下标越界,但是Bl[11]就不报错,但是Bl[12],Bl[13]----Bl[15]都有值,数组长度也是15
为什么呢,求解


vector<CString> GetDataBlHtml(const wchar_t *html)       //定义容器,获取result文件的内容(元素信息)
{
wregex pattern(L"<TD CLASS=hgwen NOWRAP>*(.*)+?"); //正则截取数据
vector<CString> results;
// results.reserve(15);
wsmatch match;
wstring html_data = html;
while (regex_search(html_data, match, pattern))
{
results.push_back(match[1].str().c_str()); //容器赋值
//MessageBox(NULL,results,"sdf",MB_OK);
html_data = match.suffix();
}
return results;
}


...全文
1665 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2015-12-29
  • 打赏
  • 举报
回复
自己Debug一下看看vector的数组长度是多少?
赵4老师 2015-12-28
  • 打赏
  • 举报
回复
“多一少一”问题占程序员常犯错误的10%以上! 避免“多一少一”问题的方法之一是将比如<10甚至<5的数代入程序片断,搬手指头心算验证一下程序到底应该写为 x、x-1、x+1中的哪个? <、<=、==、>、>=中的哪个?
paschen 2015-12-26
  • 打赏
  • 举报
回复
数组长度是15,那么有效的索引只是0-14
begodliker 2015-12-26
  • 打赏
  • 举报
回复
弹出messageBox前先判断一下vector的size,看是否有第15个元素。
oyljerry 2015-05-13
  • 打赏
  • 举报
回复
肯定下标有问题,使用前先查看一下vector大小等
lx624909677 2015-05-13
  • 打赏
  • 举报
回复
调用size方法看看容器到底是多大

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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