c – 为什么我的矢量代码断言?无论如何,断言是什么?
究竟什么是“断言”,或者更具体地说,我如何摆脱错误.当我创建一个指向带有数据成员int x的类的指针向量,然后执行以下操作:
for(I=antiviral_data.begin();I<antiviral_data.end();I++) { if((*I)->x>maxx) { antiviral_data.erase(I); } } 并运行该程序,我得到没有错误,直到x大于maxx并且我使用.erase(),此时我收到此错误:
另外,如果我尝试使用cout: cout<<(*antiviral_data.begin())->x<<endl; 我收到此错误:
有人可以告诉我为什么我不能使用向量中的任何数据,以及如何解决它? 另外:antiviral_data是指针的向量,只有一个元素: antiviral_data.push_back(new aX1(player.x,player.y,'>')); 如果这有帮助. 解决方法
你得到断言的最可能的原因是你在擦除后增加了我.试试这个:
for(I=antiviral_data.begin();I!=antiviral_data.end();) { if((*I)->x>maxx) I=antiviral_data.erase(I); else ++I; } 另请参见http://www.cppreference.com/wiki/stl/vector/erase,在该页面上搜索无效迭代器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- NPM酷库050:xmlbuilder,创建XML文件
- react-native – 如何在React Native 0.57中使用MobX和装饰
- 通过Newtonsoft.Json把类放在ViewState里再解析
- 解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
- animated `useNativeDriver` is not supported because the
- ruby-on-rails – 使用Ruby on Rails创建链接
- xcode – 当我打开RStudio时,如何禁用弹出的“git requirem
- Openstack Swift 原理、架构与 API 介绍
- c# – XNA:获取一个数组/资源列表?
- 如何在c#中设置多个整数ReportParameter?