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

网站举报互联网家装平台有哪些

网站举报,互联网家装平台有哪些,wordpress页面添加描述,营销方案范文文章目录 一、list 详解1、内存管理2、常用操作3、迭代器erase()删除list中的元素 前言: C 标准模板库(STL)中的 list 容器是一种双向链表数据结构,它允许在常数时间内进行插入和删除操作,而无需重新分配整个容器或移动…

文章目录

  • 一、`list` 详解
    • 1、内存管理
    • 2、常用操作
    • 3、迭代器+erase()删除list中的元素

前言:

C++ 标准模板库(STL)中的 list 容器是一种双向链表数据结构,它允许在常数时间内进行插入和删除操作,而无需重新分配整个容器或移动大量元素list 容器由一系列节点组成,每个节点包含数据部分和指向前后节点的指针,这种结构使得 list 在某些场景下非常高效。本文将重点介绍 list 容器的内存存储机制及其常见用法。

一、list 详解

1、内存管理

list 容器的内存存储特点主要体现在以下几个方面:

  • 非连续存储: 与数组不同,list 的元素不存储在连续的内存块中。每个元素(节点)包含数据部分以及指向前后节点的指针。这种结构使得 list 能够灵活地在任意位置进行插入和删除操作。
  • 动态内存分配: 每次插入新元素时,list 会动态分配新的节点内存。这种机制避免了像 vector 那样在插入或删除元素时可能需要重新分配整个容器的内存,从而减少了内存碎片化的风险。
  • 双向链表: 每个节点包含两个指针,一个指向前一个节点(prev),另一个指向下一个节点(next)。这使得 list 能够在常数时间内向前或向后遍历。

2、常用操作

  • push_back(const T& value) 在 list 的末尾添加一个元素。
  • push_front(const T& value) 在 list 的开头添加一个元素。
  • pop_back() 移除 list 的最后一个元素。
  • pop_front() 移除 list 的第一个元素。
  • insert(iterator pos, const T& value) 在指定位置插入一个元素。
  • erase(iterator pos) 移除指定位置的元素。
  • erase(iterator first, iterator last) 移除指定范围内的元素。
  • clear() 移除 list 中的所有元素。
  • sort() 对 list 进行排序。
  • sort(Compare comp) 使用自定义比较函数对 list 进行排序。
  • reverse():反转 list 中元素的顺序。

3、迭代器+erase()删除list中的元素

std::list 是一个双向链表容器,它提供了 erase 成员函数来删除元素。这个函数接受一个迭代器作为参数,该迭代器指向要删除的元素。调用 erase 后,该元素会从 list 中移除,并且 erase 会返回一个指向被删除元素之后位置的迭代器(如果存在的话;如果删除的是最后一个元素,则返回 end())。

示例:

#include <iostream>  
#include <list>  int main() {  // 创建一个 list 并初始化  std::list<int> myList = {1, 2, 3, 4, 5};  // 打印原始 list  std::cout << "Original list: ";  for (int val : myList) {  std::cout << val << " ";  }  std::cout << std::endl;  // 创建一个迭代器指向要删除的元素(例如,值为 3 的元素)  auto it = std::find(myList.begin(), myList.end(), 3);  // 检查是否找到了该元素  if (it != myList.end()) {  // 删除元素,并获取删除后下一个元素的迭代器  it = myList.erase(it); // 注意:这里我们更新了 it 的值  // 可选:打印删除后的 list  std::cout << "List after erasing 3: ";  for (int val : myList) {  std::cout << val << " ";  }  std::cout << std::endl;  } else {  std::cout << "Element 3 not found in the list." << std::endl;  }  // 注意:如果你不打算使用擦除后返回的迭代器(即不关心擦除后的下一个元素),  // 你也可以不更新 it,但之后不要使用它,因为它现在是一个无效迭代器。  return 0;  
}
http://www.yayakq.cn/news/117734/

相关文章:

  • 医院网站建设的重要性wordpress 自带的ajax
  • 专门做各种产品测评的网站适合代码新手做的网站
  • 网站转app免费企业空间
  • 电子购物网站开发欧宇公司网络建设方案
  • 佛山做网站制作公司龙岗区建设工程交易中心
  • 网站域名备案注销南宁网站外包
  • 商城建设网站策划长沙网站推广平台
  • 酒店网站的建设哈尔滨做企业网站
  • 专业微信网站网站建设模板源码
  • 企业网站数防泄露怎么做wordpress插件的语言设定
  • 中国最大网站建设商推荐知乎wordpress酒店模板下载
  • 自己搭建一个网站需要多少钱?研究网站建设
  • 有哪些网站可以做海报设计知乎织梦网站修改幻灯片
  • 石家庄桥西招聘 网站优化微信小程序开发平台登录
  • 广东省企业诚信建设促进会网站企业退休做认证进哪个网站
  • 手工制作网站嘉兴免费网站制作
  • wordpress 有缓存吗新浪 博客可以做网站优化吗
  • 网页设计与制作策划书广州seo全网营销
  • 南充做网站略奥网络ip138禁止查询该域名
  • 温州建设网站公司电子商务网站设计方案
  • 外贸网站如何建站网站建设服务哪家有
  • 免费网站建设协议做网站需要的知识
  • 枣庄做网站公司网站和微信 微网站解决方案
  • 网站设计论文分类号营销导向的企业网站建设步骤
  • 聊城有限公司网站建设 中企动力济二分cms建站步骤
  • 潍坊网站建设怎样网站开发算固定资产
  • 做租赁哪个网站好毕业设计代做网站价格
  • nginx 网站开发微小店网站建设官网
  • dedecms织梦系统网站防会员注册机网页美工设计的工作流程?
  • 西安高新网站制作专业的logo设计