当前位置: 首页 > 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.15wanjia.com/news/185514.html

相关文章:

  • 搜不到wordpress 网站wordpress写代码
  • 绍兴做网站建设用ssh做网站
  • 钓鱼网站盗号wordpress加邮箱代码
  • 做鞋子出口需要作网站吗公司企业邮箱管理制度
  • 隧道建设杂志网站2023年小学生简短小新闻
  • 餐饮加盟网站建设免费网站建设排行榜
  • 网站建设时间表深圳网站公司网站制作
  • 创意网站建设价格多少网页浏览器有哪几种
  • 政和县建设局网站公告网页设计的主题
  • 静态企业网站下载定制制作网站哪家好
  • 定制手机壳的网站建设银行网站信任
  • 厦门企业网站建设方案什么是网络营销什么是传统营销
  • 中材建设有限公司招标网站wordpress free cdn
  • 采购网站有哪些免费企业网站建设要求
  • 网站建设需注意哪些事项网站的开发环境设计
  • 有网站想修改里面的内容怎么做建设个人网银登录入口
  • 企业seo外包公司南宁百度seo软件
  • 公司网站建设合同天猫商城在线购物
  • html5快速建站苏州网站建设技术
  • 唐山网站公司建设网站上海城隍庙必吃美食
  • 云空间搭建网站大专软件技术好学吗
  • 企业管理网站模板浏览器观看的视频怎么下载
  • 网站基本建设的原理行业数据网站
  • 昆明网站建设哪家公司好青岛科技街网站建设
  • 网站上传用什么软件做视频教程什么网站比较吸引流量
  • 一篇网站设计小结公司百度官网优化
  • 做网站需要招什么条件北京网页制作培训班
  • 东莞php网站开发怎么制作网站论坛模板
  • 教育网站报名网站改版说明
  • 自己做的网站显示不安全怎么回事淘宝客的网站是自己做的吗