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

网页建站平台建设服务好的建筑企业查询

网页建站平台建设,服务好的建筑企业查询,广告网站建设实训报告,老域名新网站C STL中的list list是C标准模板库&#xff08;STL&#xff09;中的一个序列容器&#xff0c;它实现了一个双向链表。与vector和deque相比&#xff0c;list支持快速的任意位置插入和删除操作&#xff0c;但不支持快速随机访问。 基本操作 创建和初始化 #include <list> …

C++ STL中的list

list是C++标准模板库(STL)中的一个序列容器,它实现了一个双向链表。与vectordeque相比,list支持快速的任意位置插入和删除操作,但不支持快速随机访问。

基本操作
  1. 创建和初始化

    #include <list>
    std::list<int> l1; // 创建一个空的list
    std::list<int> l2(5, 10); // 创建一个大小为5的list,每个元素初始化为10
    std::list<int> l3 = {1, 2, 3, 4, 5}; // 初始化列表
    
  2. 访问元素

    • front()back():访问第一个和最后一个元素。
    • list不支持operator[]at(),因为它不提供随机访问。
    int first = l3.front(); // 1
    int last = l3.back(); // 5
    
  3. 修改元素

    • push_back(value)push_front(value):在list的末尾或开头添加一个元素。
    • pop_back()pop_front():移除list的最后一个或第一个元素。
    • insert(position, value):在指定位置插入一个元素。
    • erase(position)erase(start, end):删除一个或多个元素。
    • clear():清空所有元素。
    l3.push_back(6); // l3: {1, 2, 3, 4, 5, 6}
    l3.push_front(0); // l3: {0, 1, 2, 3, 4, 5, 6}
    l3.pop_back(); // l3: {0, 1, 2, 3, 4, 5}
    l3.pop_front(); // l3: {1, 2, 3, 4, 5}
    auto it = l3.begin();
    std::advance(it, 2); // 移动迭代器到第三个元素
    l3.insert(it, 99); // l3: {1, 2, 99, 3, 4, 5}
    l3.erase(it); // l3: {1, 2, 3, 4, 5}
    
  4. 大小

    • size():返回当前元素的数量。
    • empty():检查容器是否为空。
    size_t num_elements = l3.size(); // 5
    bool is_empty = l3.empty(); // false
    
  5. 遍历

    • 使用迭代器进行遍历。
    for (int x : l3) std::cout << x << " ";
    for (auto it = l3.begin(); it != l3.end(); ++it) std::cout << *it << " ";
    
相关算法

list可以与STL中的算法库配合使用,但由于其内部结构是链表,某些基于随机访问的算法(如std::sort)不适用。不过,list提供了自己的成员函数来处理排序和其他操作。

  1. 排序

    • 使用list的成员函数sort(),因为标准的std::sort要求随机访问迭代器。
    l3.sort(); // 对list进行排序
    ``` 
  2. 反转

    • 使用list的成员函数reverse()来反转元素。
    l3.reverse(); // 反转list中的元素
    
  3. 查找

    auto it = std::find(l3.begin(), l3.end(), 3);
    if (it != l3.end()) {std::cout << "Element found: " << *it << std::endl;
    }
    
  4. 计数

    int count = std::count(l3.begin(), l3.end(), 3);
    
  5. 删除特定元素

    • 使用remove()成员函数直接删除所有匹配的元素。
    l3.remove(3); // 删除所有值为3的元素
    
  6. 遍历并执行操作

    std::for_each(l3.begin(), l3.end(), [](int& x){ x *= 2; });
    

list是一个非常有用的容器,特别是在需要频繁插入和删除操作时。它的灵活性使得在处理非连续存储的数据结构时非常高效。通过结合STL的算法,可以有效地管理和处理存储在list中的数据。

http://www.yayakq.cn/news/11048/

相关文章:

  • 做企业网站域名需要解析吗如何在网站中加入百度地图
  • 济南旅游网站建设现状北京托管网站
  • 做家装的网站有哪些织梦系统seo网站模板
  • 在线设计响应式网站域名注册腾讯云
  • 灵犀科技网站开发佼佼者nginx进wordpress不能进目录
  • 安全的网站建设公司长春快速建站公司
  • 网站开发 技术投标哈密建设集团有限责任公司网站
  • 包装东莞网站建设0769展馆展示设计公司一般做什么设计
  • 网站建设知识库三亚房产做公示是什么网站
  • 太原网站建设联系方式自动推送代码wordpress教程
  • 福州定制网站建设长沙网站托管
  • 萝岗营销型网站建设昌吉做网站
  • 美容院网站源码wordpress移动端标签
  • 网站类型分类有哪些西安高风险地区
  • 信息技术的网站建设是什么如何外贸推广
  • 国外科技网站欣赏怎么把源码做网站
  • 捕鱼网站怎么做厦门市网站建设局
  • 源代码建网站网络设计目标及设计思想
  • 黑龙江省垦区建设协会网站房产信息平台制作
  • 推荐常州网站建设秦皇岛营销式网站制作
  • 云主机重装系统后网站重新部署吗货运公司网站源码
  • 厦门制作公司网站网络营销以什么为基础
  • 电子商务网站建设 精品课程分销pc网站
  • 淄博网站建设培训学校威海建设局网站楼盘信息公布
  • wordpress建站过时了网站策划 ppt
  • 网站seo课设厦门网站建设满山红
  • 常熟网站建设icp备案wpautop wordpress
  • 黑龙江省中国建设银行网站首页设计素材免费下载
  • 盐城市城乡和住房建设厅网站德州网站制作
  • 怎么评价一个网站设计做的好坏中国建筑工程网承包企业管理系统