当前位置: 首页 > 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.fp688.cn/news/145514.html

相关文章:

  • e网站的图标怎么做seo搜索引擎优化实战
  • 网站分为几种如何做网络营销?
  • 图片 网站源码 采集百度推广官网
  • 黑群晖做php网站网站测试的内容有哪些
  • 餐饮品牌设计哪个公司最好北京网站优化快速排名
  • 网站优化主旨百度识图在线使用
  • 南宁建站模板大全seo交流群
  • 网站设计技术大全黑帽seo培训网
  • 东莞网站设计公司最近新闻头条最新消息
  • 广东专业网站优化公司报价安卓手机优化
  • 网站首页的布局设计北京seo优化服务
  • 中科商务网做网站垃圾推一手新闻发稿平台
  • 深圳北站设计者品牌推广策划方案怎么写
  • 湘乡新闻头条百度seo怎么查排名
  • c#做asp.net网站最新域名查询
  • 西部排名nba最新排名seo服务深圳
  • 制作视频的网站软件seo国外英文论坛
  • 做网站的说3年3年包括什么软件接单平台app
  • 三明住房和城乡建设部网站青岛网络seo公司
  • 成品网站w灬源码1688网页版免费制作小程序平台
  • ps插件国外网站网络营销就业方向和前景
  • 能免费做微信群推广的网站电商网页制作教程
  • 网站开发设计各部门职责杭州全网推广
  • 宁波网站建设多少钱一个哪里有整站优化
  • 达州做网站推广方法
  • 昆山网站建设兼职打开百度
  • 商务网页设计与制作相关技术介绍金华关键词优化平台
  • 江桥做网站付费推广方式有哪些
  • 网站设计的流程是怎样的seo工作流程
  • 做网站要求百度搜索优化怎么做