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

上海中企动力做网站多少钱哈尔滨信息网免费招聘

上海中企动力做网站多少钱,哈尔滨信息网免费招聘,phpcmsv9手机网站模板,做网站还是微信小程序C容器系列之list详解与应用 引言list的元素排列特性优缺点与其他容器的区别应用场景常见函数代码示例 引言 C标准模板库#xff08;STL#xff09;提供了丰富的容器类#xff0c;其中之一就是list。list是一个双向链表实现的容器#xff0c;与数组和向量等容器有很大的区别… C容器系列之list详解与应用 引言list的元素排列特性优缺点与其他容器的区别应用场景常见函数代码示例 引言 C标准模板库STL提供了丰富的容器类其中之一就是list。list是一个双向链表实现的容器与数组和向量等容器有很大的区别。本文将详细介绍list的元素排列特性、与其他容器的区别、应用场景并提供代码示例。 list的元素排列特性 list是一个双向链表因此其元素在内存中并不是连续存储的而是通过指针进行连接。这使得在插入和删除操作上具有高效性能但在随机访问上相对较慢。 优缺点 优点 高效的插入和删除操作 由于链表的结构插入和删除元素只需调整相邻节点的指针无需移动大量元素。 不需要预先分配内存 相比于数组和向量list不需要预先分配一块连续的内存空间。 缺点 随机访问相对较慢 由于链表的结构访问元素时需要从头节点或尾节点开始逐个遍历时间复杂度为O(n)。 与其他容器的区别 与向量vector的区别 内存分配方式 vector使用动态数组元素在内存中是连续存储的而list使用链表元素是通过指针连接的。 插入和删除操作 在vector中插入和删除元素可能涉及到大量元素的移动而list插入和删除操作仅需要调整指针因此更高效。 与队列queue的区别 元素访问 queue是一个先进先出FIFO的数据结构只能在队列的两端进行元素的插入和删除而list可以在任意位置插入和删除元素。 与双端队列deque的区别 中间插入和删除操作 与deque相比list更适合在中间插入和删除元素因为在list中这些操作是高效的而在deque中涉及到元素的移动。 应用场景 list适用于以下场景 频繁的插入和删除操作 当程序中需要频繁执行插入和删除操作而不关心随机访问时list是一个不错的选择。不需要随机访问的情况 如果算法或数据结构的特性不要求随机访问使用list可以获得更好的性能。中间插入和删除较多的情况 如果需要在容器的中间位置进行大量插入和删除操作list通常比其他容器更为高效。 常见函数 以下是C中std::list类的一些常见函数用法 构造和赋值 构造函数 std::listint myList; // 创建一个空的list std::listint myList2(5, 10); // 创建包含5个值为10的元素的list赋值操作 std::listint anotherList {1, 2, 3}; myList anotherList; // 赋值操作插入和删除操作 插入元素 myList.push_back(4); // 在末尾插入元素 myList.push_front(0); // 在开头插入元素 auto it myList.begin(); it; myList.insert(it, 2); // 在指定位置插入元素删除元素 myList.pop_back(); // 删除末尾元素 myList.pop_front(); // 删除开头元素 auto it myList.begin(); it; myList.erase(it); // 删除指定位置的元素访问元素 通过迭代器访问 for (auto it myList.begin(); it ! myList.end(); it) {std::cout *it ; }通过范围-based for 循环 for (const auto element : myList) {std::cout element ; }容量 大小 std::cout Size of the list: myList.size() std::endl;检查是否为空 if (myList.empty()) {std::cout List is empty. std::endl; }修改容器 清空 myList.clear(); // 清空所有元素其他操作 反转 myList.reverse(); // 反转list中的元素排序 myList.sort(); // 默认升序排序 // 若要降序排序可以使用自定义比较函数 myList.sort(std::greaterint());这些是std::list类的一些基本函数用法。在实际使用时可以根据具体需求选择合适的操作。 代码示例 下面是一个简单的C代码示例演示了如何使用list进行基本操作 #include iostream #include listint main() {// 创建liststd::listint myList;// 在末尾插入元素myList.push_back(1);myList.push_back(2);myList.push_back(3);// 在开头插入元素myList.push_front(0);// 遍历liststd::cout Elements in the list: ;for (const auto element : myList) {std::cout element ;}std::cout std::endl;// 删除第二个元素auto it std::next(myList.begin(), 1);myList.erase(it);// 遍历修改后的liststd::cout Elements after erasing the second element: ;for (const auto element : myList) {std::cout element ;}std::cout std::endl;return 0; }这个示例展示了如何创建list、插入和删除元素以及遍历list。
http://www.zqtcl.cn/news/667289/

相关文章:

  • wordpress网站字体淄博网站搜索排名
  • visual stdio 做网站 注册用户 密码必须6位以上品牌服装网站源码
  • 做网站用到的技术湖南建设银行网站
  • 成都大型网站设计公司电脑上重新下载一个wordpress
  • 番禺网站建设知乎自己做网站卖矿山设备
  • 手表网站起名登录页面html模板
  • 泰国如何做网站推广大英网站建设工作
  • 山东省职业能力建设处网站dz论坛怎么做视频网站吗
  • 郑州专业做网站的公司今天郑州最新通告
  • wap网站引导页特效wordpress 文章 数据库
  • 做建筑效果图最好的网站做网站是如果盈利的
  • 企业网站seo托管怎么做seo公司培训
  • 自己做网站不想买空间 自己电脑可以做服务器吗?下载建设网站软件
  • 有服务器自己怎么做网站百度广告电话号码是多少
  • 一个网站 两个数据库沈阳市住房和城乡建设厅网站
  • 重庆建站网站流程及费用制作网页界面工具
  • 设计师家园官网wordpress 4.9 优化
  • 主机屋空间安装织梦后台程序后怎么弄成淘宝客网站襄阳网站制作
  • 怎么建设分销模式手机网站宜昌做网站的公司
  • 网上商城网站设计网页设计作业欣赏
  • 育才网站建设网站访问慢原因
  • 网站建设方案 备案品牌网站推广软件
  • 桓台县建设局网站前端开发入门培训
  • 前端怎么在猪八戒网站接单做烟台网站开发技术
  • 济南烨铭网站建设做英文网站2014
  • 哪个餐饮店微网站做的有特色3d动画制作收费标准
  • h5旅游网站开发wordpress的站点地址如何配置
  • 网站正在维护中 模板招远网站建设
  • 福田欧曼银河报价seo文章是什么
  • 古云网站建设模具培训网站建设