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

建工教育网校官方网站重庆网页推广公司

建工教育网校官方网站,重庆网页推广公司,网站建站要交税吗,深圳红酒包装深圳画册设计目录 list定义和结构 list容器模板接受两个参数: list容器的特点 双向性 动态大小 不连续存储 实例 代码输出 需要注意的点 list常用函数 代码示例 list定义和结构 list的使用频率不高,在做题时极少遇到需要使用list的情景。 list是一种双向…

目录

list定义和结构

list容器模板接受两个参数:

list容器的特点

双向性

动态大小

不连续存储

实例

代码输出

需要注意的点

list常用函数

代码示例


list定义和结构

list的使用频率不高,在做题时极少遇到需要使用list的情景。

list是一种双向链表容器,他是标准模板库(STL)提供的一种序列容器。list容器以节点(node)的形式存储元素,并使用指针将这些节点链接在一起,形成一个链表结构。

list容器的定义和结构如下:

template<class T,class Allocator = std::allocator<T>>
class list;

list容器模板接受两个参数:

1.T:指定容器中存储的元素类型。

2.Allocator:可选,指定用于分配内存的分配器类型,默认为std::allocator<T>。

list容器的特点

双向性

每个节点都包含指向前一个节点和后一个节点的指针,因此可以在常数时间内在链表中的任意位置进行插入、删除和访问操作。

动态大小

链表的大小可以根据需要动态扩展或收缩,不需要预先指定容器的大小。

不连续存储

链表的节点可以在内存中的任意位置分布,不要求连续存储,因此插入和删除操作不会导致元素的移动。

list容器提供了一系列成员函数和迭代器来操作和访问链表中的元素,包括插入、删除、访问、反转等操作。可以使用迭代器来遍历链表中的元素。

实例

#include<iostream>
#include<list>
using namespace std;
int main()
{list<int>myList;//在链表尾部插入元素myList.push_back(1);myList.push_back(2);myList.push_back(3);//在链表头部插入元素myList.push_front(0);//遍历链表并输出元素for (int num : myList){cout << num << ' ';}cout << endl;
}

代码输出

需要注意的点

由于list是双向链表,因此插入和删除操作的时间复杂度是常量时间O(1),但访问和查找操作的时间复杂度为O(n),其中n是链表的大小。因此,如果需要频繁进行随机访问操作,可能更适合使用支持随机访问的容器,如vector或deque。

list常用函数

1、push_back():将元素插入到链表的末尾

2、push_front():将元素插入到链表的开头

3、pop_back():移除链表末尾的元素

4、pop_front():移除链表开头的元素

5、size():返回链表中的元素个数

6、empty():检查链表是否为空

7、clear():清空链表中的所有元素

8、front():返回链表中第一个元素的引用

9、back():返回链表中最后一个元素的引用

10、begin():返回指向链表第一个元素的迭代器

11、end():返回指向链表最后一个元素的迭代器

12、insert():在指定位置之前插入一个或多个元素

13、erease():从链表中移除指定位置的一个或多个元素

代码示例

#include<iostream>
#include<list>
using namespace std;
int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);//创建一个list<int>对象myListlist<int>myList;//向myList尾部添加元素for (int i = 1; i <= 5; i++){myList.push_back(i);}//从头到尾输出myList中的元素for (const auto& i : myList){cout << i << ' ';}cout << endl;//将myList中的元素反转reverse(myList.begin(), myList.end());for (const auto& i : myList){cout << i << ' ';}cout << endl;//在第一个元素的后一个位置加上元素0myList.insert(++myList.begin(), 0);for (const auto& i : myList){cout << i << ' ';}cout << endl;myList.erase(++++myList.begin(), --myList.end());cout << "链表的大小为:" << myList.size() << endl;for(const auto & i:myList){cout << i << ' ';}return 0;
}

输出结果:

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

相关文章:

  • 兰州怎么提高网站的排名广州品牌网站
  • 百度网站推广公司wordpress 修订版本号
  • 织梦网络公司网站设计师电脑配置推荐2022
  • pythom 网站开发规范做营销型网站哪家好
  • 建设执业资格注册中心网站办事大厅轻拟物风格WordPress
  • 网站制作需要学多久东莞人才网官网
  • 汕头网站制作全过程自己做网站卖二手车
  • 知名的集团门户网站建设费用html基础
  • 网站建设的开票编码广州市工程交易中心官网
  • p2p网贷网站建设方案网站开发外包费用的会计分录
  • 怎样把有用网站做图标放在桌面网站系统网站开发
  • 作为一个大学生网站 应该怎么做wordpress4.0.1
  • 网站建设 的公司网站建设几个要素
  • 房地产网站建设哪家好湖南省邵阳市建设局网站
  • iis网站后台登不进app开发全过程
  • 教育集团网站设计策划书广东手机网站建设报价
  • 苏州哪家做网站好些太平洋保险网站做的这么烂
  • 网站排名是怎么做常见的服务器有哪些
  • 广州网络建站永川网站建设
  • 照片分享网站模板下载wordpress语言修改
  • 什么网站可以做认证网站搭建多少钱logo修改
  • 郑州网页设计公司有哪些网络推广优化品牌公司
  • 怎么选择模板建站服务购物网站开发将商品导入数据库
  • 新开传奇发布网站wordpress数据表格插件
  • 新闻类网站开发难点做网站分期付款比例
  • 广州广告网站建设python培训机构
  • 购物网站开发的必要性wordpress顶部菜单哪里设置
  • 无锡企业网站建设报价成功营销十大经典案例
  • 做医疗网站要几个人国家城乡建设规划部网站
  • 好的兼职做调查网站广告创意设计欣赏