vector,CCArray等元删除满足条件元素的删除(比如删除大于2的元素)
来源:互联网 发布:云计算数据中心建设 编辑:程序博客网 时间:2024/05/22 07:57
1,正序删除#include<iostream>#include<vector>using namespace std;void main(){ vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); v.push_back(4); v.push_back(5); for(vector<int>::iterator iter = v.begin(); iter != v.end();) { if(*iter >= 2) { cout<<*iter<<endl; iter = v.erase(iter); } else iter++; } }/* 2 3 4 5 */
总结 :
当删除第1个元素后,iter指向原来的第2个元素,其实还是现在的第1个元素。也就是说,每次都删除第一个元素。
不删除的话,正常的++,从而指向下一个元素。
2,倒序删除
for(vector<int>::iterator iter = v.end() - 1; iter >= v.begin(); iter--){ if(*iter >= 2){ cout<<*iter<<endl; iter = v.erase(iter); }}/* 5 4 3 2 */
总结:
每次删除最后一个元素后,iter指向end,然后减去1,从而又指向最后一个元素。从而每次删除最后一个元素。
3,在CCArray中倒序删除元素。
如,rpg游戏中,移除血量小于0的敌人,就可以采用倒序删除的方法。
int SGFight::refreshArr(){for(int i = arrHero->count() - 1; i >= 0; i--){if(((SGRole*)arrHero->objectAtIndex(i))->getCurHp() <= 0){arrHero->removeObjectAtIndex(i);if(arrHero->count() == 0){return FIGHT_ENEMY_WIN;}}}for(int i = arrEnemy->count() - 1; i >= 0; i--){if(((SGRole*)arrEnemy->objectAtIndex(i))->getCurHp() <= 0){arrEnemy->removeObjectAtIndex(i);if(arrEnemy->count() == 0){return FIGHT_HERO_WIN;}}}return FIGHT_NORMAL;}
总结:
i指向最后一个元素的索引 ,删除后,i不变。然后减去1,从而依然指向最后1个元素。
0 0
- vector,CCArray等元删除满足条件元素的删除(比如删除大于2的元素)
- 测试对Vector容器,遍历元素删除满足条件元素,而进行Erase()操作的效率
- C++ Vector 删除符合条件的元素
- vector元素的删除
- CCArray数组或者vector容器元素在遍历时删除的删除技巧
- vector中利用迭代器删除满足一定条件的元素或者值
- C++/STL_利用remove_if 删除vector,list,deque满足条件的元素
- 删除列表中满足一定条件的元素
- STL vector用法以及如何删除符合条件的元素
- C++ vector中删除符合条件的元素
- 【C++】循环删除vector等容器内的元素
- 关于用集合的remove方法删除list集合中满足条件的元素问题
- std::map 通过遍历删除满足某些条件元素的两种方式
- std::map 通过遍历删除满足某些条件元素的两种方式
- std::map 通过遍历删除满足某些条件元素的两种方式
- Python实现删除列表中满足一定条件的元素示例(转)
- vector中特定元素的删除
- 用erease删除vector里的元素
- submit提交后怎么刷新页面
- memcached 分布式取决于客户端
- vTiger CRM 6.1.0 索引篇
- uva 10452 Marcus
- 第十七章 17.5.2节练习 & 17.5.3节练习
- vector,CCArray等元删除满足条件元素的删除(比如删除大于2的元素)
- lotusphp里面和thinkphp里面的C方法重复怎么解决
- Android学习笔记 - 目录
- uvaoj 1364 - Knights of the Round Table
- cookie 赋了值但是不起作用 需要先清空再赋值就可以
- 水晶报表打印乱码问题
- 设置ExpandableListView右边的箭头
- xmms安装配置工作记录
- Androi之Intent分析