当前位置: 首页 > news >正文

网站建设需准备什么在线识别图片来源

网站建设需准备什么,在线识别图片来源,网站营销外包,广州免费孕检文章目录 一、题目链接二、参考代码三、所思所悟 一、题目链接 链接: 27. 移除元素 二、参考代码 思路1&#xff1a;找到需要移除的数组元素&#xff0c;将右侧全部元素向左覆盖 int removeElement(vector<int>& nums, int val) {int size nums.size();for (int …

文章目录

  • 一、题目链接
  • 二、参考代码
  • 三、所思所悟


一、题目链接

链接: 27. 移除元素


二、参考代码

思路1:找到需要移除的数组元素,将右侧全部元素向左覆盖

int removeElement(vector<int>& nums, int val) {int size = nums.size();for (int i = 0; i < size; i++) {if (nums[i] == val) {for (int j = i + 1; j < size; j++) {nums[j - 1] = nums[j];}i--;size--;}}return size;}

思路2:使用两个下标来进行遍历,当遇到需要移除的数组元素slow下标不动,fast下标进行前进;当遇到不需要移除数组元素时,将元素放入,并且两个下标进行前进

int removeElement(vector<int>& nums, int val) {int fastindex = 0, slowindex = 0;for (; fastindex < nums.size(); fastindex++) {if (nums[fastindex] != val) {nums[slowindex++] = nums[fastindex];}}return slowindex;}

思路3:使用库函数(后面有库函数具体解释)

int removeElement(vector<int>& nums, int val) {auto newEnd = remove(nums.begin(), nums.end(), val);nums.erase(newEnd, nums.end());return nums.size();}

三、所思所悟

std::remove
定义在 头文件中。它的目的是移除容器中所有等于给定值的元素,但它并不实际从容器中删除这些元素,而是将它们“移动”到容器的末尾,并返回一个指向新逻辑末尾的迭代器。这个新逻辑末尾是第一个应该被移除的元素的位置。
工作原理:

  1. remove 遍历整个容器,寻找等于给定值 val 的元素。
  2. 它不直接删除这些元素,而是将所有不等于 val 的元素向前移动,覆盖那些等于 val 的元素。
  3. 这个过程会一直进行,直到遍历完整个容器。
  4. 最终,所有不等于 val 的元素都会被移动到容器的开始位置,而所有等于 val 的元素都会被移到容器的末尾。
  5. remove 返回一个指向新逻辑末尾的迭代器,即第一个应该被移除的元素的位置。
std::vector<int> v = {1, 2, 3, 4, 3, 3, 5};
auto newEnd = std::remove(v.begin(), v.end(), 3);

在这个例子中,std::remove 会将除了 3 以外的所有元素移动到 v 的开始位置,返回的 newEnd 迭代器会指向第一个 3 的位置。

std::erase
erase 是 std::vector(以及其他容器)的一个成员函数,用于从容器中删除元素或一系列元素。
1.erase(pos,n);
删除从下标pos开始的n个字符,比如erase(0,1)就是删除第一个字符
2.erase(position);
删除postion处的一个字符(position是一个string类型的迭代器)
3.erase(first,last)
删除从first到last之间的字符(first和last都是迭代器)

工作原理:

  1. erase 接受一个或两个迭代器作为参数,这两个迭代器定义了要删除的元素范围。
  2. 如果只提供一个迭代器,erase 会删除该迭代器指向的单个元素。
  3. 如果提供两个迭代器,erase 会删除从第一个迭代器到第二个迭代器(不包括第二个迭代器)之间的所有元素。
  4. erase 会将所有后续的元素向前移动,填补被删除元素留下的空间。
  5. erase 返回一个指向被删除元素之后元素的迭代器。
std::vector<int> v = {1, 2, 3, 4, 5};
v.erase(v.begin() + 2); // 删除第三个元素(值为3)

在这个例子中,std::remove 将所有不等于 3 的元素移动到 v 的开始位置,并返回一个指向第一个 3 的迭代器。然后 erase 删除从这个迭代器到 v.end() 之间的所有元素,包括所有的 3。最终 v 变为 {1, 2, 4, 5}。

http://www.ds6.com.cn/news/116022.html

相关文章:

  • 新型网站建设网络运营seo是什么
  • 怎样添加网站上百度商桥代码推广软文范例
  • 做家装家居网站免费网站推广软件哪个好
  • 网站建设的方法外链是什么意思
  • 微信公众号网站制作凡客建站
  • 如和做视频解析网站营销推广48个方法
  • java短租网站开发网络广告策划书
  • 正邦设计待遇怎么样网络优化seo薪酬
  • 美食网站联系我们怎么做设计个人网站
  • 大麦网建设网站的功能定位3小时百度收录新站方法
  • 不会做网站如何做seo营销型网站特点
  • 做网站的时候怎么设置背景广州优化营商环境条例
  • 做外贸的网站看啥书百度提交网站入口
  • 服务好的网站制作建设厦门seo计费
  • 做sohu最好的推广网站成人大专
  • 网站的登录注册怎么做官方网站怎么查询
  • 阜阳网站建设价格91永久海外地域网名
  • 网站线框图用什么做近期发生的新闻
  • 农村建设房子建设网站建设百度指数排名
  • 建个人网站做导购怎么在网上做广告
  • 燕郊网站建设哪家好北京seo顾问外包
  • 餐饮网站开发毕业设计模板seo引擎优化软件
  • wordpress管理工具长春做网络优化的公司
  • 建设班级网站首页深圳经济最新新闻
  • 微信小程序做链接网站网站优化seo培训
  • 东营做网站百度seo关键词优化软件
  • 上虞区住房和城乡建设局网站公众号seo排名
  • 徐州酷优网络seo营销怎么做
  • 包头手机网站制作市场营销一般在哪上班
  • 网站建设算无形资产吗百度推广app下载官方