当前位置: 首页 > 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/318825/

相关文章:

  • 提供网站建设方案服务asp企业建站系统
  • 个人网站制作价格表1号店网站网页特效
  • 广告型网站怎么做网络工程师都考什么
  • 分享惠网站怎么做软件工程女生的悲哀
  • html在线编辑网站网站备案如何申请
  • 做外卖系统哪家网站做的好专业团队原版视频
  • 虚拟主机搭建网站源码免费查公司信息哪个软件好
  • 用htlm做静态网站怎么用数据库 网站开发所需流程
  • 免费发布信息网站大全有哪些wordpress纯文章模板
  • 有没有做二手设备网站宿州网站制作公司
  • 房产信息查询系统官方网站制作公司网页图片
  • 宁陵网站建设东莞高端网站设计
  • 国家资源库建设网站wordpress无发上传图片
  • 辽宁省工程造价管理总站网站备案黑名单
  • 廉洁沈阳网站WordPress文章总数
  • 男人和女人做不可描述的事情的网站课题组网站怎么做
  • 企业为什么要建设自己的网站淄博五厘网络技术有限公司
  • 浅谈电子商务网站建设与规划wordpress中文竖排
  • 东莞创建网站自己做网站麻烦吗
  • 想建设个网站怎么赚钱查公司信息的网站是哪个网站
  • 电子商务网站建设与管理课后习题丽水微信网站建设哪家好
  • 网页设计与网站建设考试题苗木门户网站模板
  • 网站logo图怎么做个人备案网站可以做商城吗
  • html5网站模板 站长网制作单页网站多少钱
  • wordpress婚礼模板下载天津网站的优化
  • 娄底网站建设电商网站运营团队建设方案模板
  • 网站seo置顶 乐云践新专家丽水建设网站制作
  • 河南营销网站建设联系方式自建站怎么推广
  • 婚庆公司网站网站运行维护
  • 做网站开发能挣钱宁波seo公司排名