【牛客带你学编程C++方向】项目练习第9期(截止6.15)


C++项目练习:第9期
练习时间:6月1日-6月15日(2周)
活动规则:
  • 每一期一个项目,届时会开新帖发布
  • 学员直接将答案提交到该贴评论区即可
  • 两周后,公布导师参考答案
  • 导师评选出当期最佳代码(将设置为精彩回复

奖励:牛客大礼包一份(牛客定制水杯 牛客定制笔 牛客定制程序员徽章 滑稽抱枕)
参与方式:直接将你的代码回复到本帖评论区

----------------------------------------------------

本期题目:

怎么使用迭代器删除一个vector中的偶数元素?

参与方式:直接将你的代码回复到本帖评论区

全部评论
void delete_even(std::vector<int> &v) { if (v.size() == 0) return; auto it = v.begin(); while (it != v.end()) { if (!(*it & 1)) it = v.erase(it); else ++it; } }
点赞 回复 分享
发布于 2018-06-01 12:42
#include <bits/stdc++.h> using namespace std; int main(void) { vector<int>v={1,2,3,4,5,6,7,8,9}; auto it=v.begin(); while (it!=v.end()) { if (*it%2==0)it=v.erase(it); else it++; } for(auto &x:v)cout<<x<<endl; return 0; }
点赞 回复 分享
发布于 2018-06-01 10:31
#include<vector> using namespace std; void delete_even(vector<int> &v) {     if (v.empty())         return;     vector<int>::iterator ite = v.begin();     while (ite != v.end())     {         if (*ite%2==0)             ite = v.erase(ite);//erase函数删除指定位置元素后,返回指向下一个元素位置         else             ++ite;     } } 同上
点赞 回复 分享
发布于 2018-06-01 16:03
void deleteOdd(vector<int> &v) { ​ v.erase(remove_if(v.begin(),v.end(),[](int x){ return !(x&1);}),v.end()); }
点赞 回复 分享
发布于 2018-06-05 09:29

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务