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

贵州微信网站建设化妆品网站建设描述

贵州微信网站建设,化妆品网站建设描述,wordpress dux商城,简约好看的ppt模板免费下载目录 一、list 1.1list的定义和结构 以下是一个示例#xff0c;展示如何使用list容器: 1.2list的常用函数 1.3list代码示例 二、stack 2.1stack的定义和结构 stack的常用定义 2.2常用函数 2.3stack代码示例 一、list 1.1list的定义和结构 list的使用频率不高#…目录 一、list 1.1list的定义和结构 以下是一个示例展示如何使用list容器: 1.2list的常用函数 1.3list代码示例 二、stack 2.1stack的定义和结构 stack的常用定义 2.2常用函数 2.3stack代码示例 一、list 1.1list的定义和结构 list的使用频率不高在做题时极少遇到需要使用list的情景。ist是一种双向链表容器它是标准模板库(STL)提供的一种序列容器。list容器以节点(node)的形式存储元素并使用指针将这些节点链接在一起形成一个链表结构。list容器的定义和结构如下 template class T, class Allocator std::allocatorTclass list; list容器模板接受两个参数 T:指定容器中存储的元素类。Allocator (可选):指定用于分配内存的分配器类型默认为std::allocatorT。 list容器的特点包括: 双向性:每个节点都包含指向前一个节点和后一个节点的指针因此可以在常数时间内在链表中的任意位置进行插入、删除和访问操作。动态大小: 链表的大小可以根居需要动态扩展或收缩不需要预先指定容器的大小不连续存储:链表中的节点可以在内存中的任意位置分布不要求连续存储因此插入和删除操作不会导致元素的移动。list与其他标准序列容器arrayvector和deque相比list通常可以在容器内的任何位置插入、提取和移动元素。list与其他标准序列容器arrayvector和deque相比list和forward_list单链表实现的主要缺点是他们不能通过位置直接访问元素例如要访问列表中的第五个元素必须从已知位置开始或结束迭代到该位置需要线性时间开销。存储密度低list要使用一些额外的内容空间nextprev来保持与每个元素相关联前后续的线性的链接信息从而导致存储小元素类型如charshortint等的列表的存储密度低。 list容器提供了一系列成员函数和迭代器来操作和访问链表中的元素包括插入、删除、访问、反转等操作。可以使用迭代器来遍历链表中的元素。 以下是一个示例展示如何使用list容器: #includeiostream #includelistusing namespace std;int main() {listint 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;return 0; } 在上述示例中我们首先创建了一个list容器myList然后使用push_back()和push_front()函数分别在链表尾部和头部插入元素。最后使用范围基于范围的for循环遍历链表并输出元素。需要注意的是由于list是双向链表因此插入和删除操作的时间复杂度是常量时间O(1)但访问和查找操作的时间复杂度是线性时间O(n)其中n是链表的大小。因此如果需要频繁进行随机访问操作可能更适合使用支持随机访问的容器如vector或deque。 随机访问begin()idex得到迭代器 1.2list的常用函数 list容器提供了多个常用的成员函数来操作和访问链表中的元素以下是一些常用的list函数的解释: push _back():将元素插入到链表的末尾。push front():将元素插入到链表的开头。pop back():移除链表末尾的元素。pop_front():移除链表开头的元素。size():返回链表中元素的个数。empty():检查链表是否为空。clear():清空链表中的所有元素。front():返回链表中第一个元素的引用。back():返回链表中最后一个元素的引用。begin(): 返回指向链表第一个元素的迭代器。end(): 返回指向链表末尾的下一个位置的迭代器。insert():在指定位置之前插入一个或多个元素。.erase():从链表中移除指定位置的一个或多个元素。 1.3list代码示例 在代码中我们向myList的尾部添加了5个元素从1到5。 int main() {//创建一个Listint对案myListlistint myList;//向myList尾部添加元素for (int i 1; i 5; i){myList.push_back(i);} 然后我们使用范围for循环遍历myList并输出其中的元素。输出结果为1 2 3 4 5 。 // 从头到尾输出myList中的元素for (const auto i : myList)cout i ;cout \n; 使用reverse函数将myList中的元素反转并输出反转后的结果。输出为5 4 3 2 1 。 //将myList中的元素反转reverse(myList.begin(), myList.end());for (const auto i : myList)cout i ;cout \n; 再使用myList.begin()获取链表的第一个迭代器然后使用操作符将其移动到第二个元素的位置。接着我们使用insert函数在这个位置插入元素0。输出结果为5 0 4 3 2 1 。 //在第一个元素的后一个位置加上元素0myList.insert(myList.begin(), 0); 删除链表中的一部分元素。myList.begin()将迭代器移动到链表的第三个元素而--myList.end()将迭代器移动到链表的倒数第二个元素之前的位置。因此这行代码将删除从第三个元素到倒数第二个元素之间的所有元素。 for (const auto i : myList)cout i ;cout \n;myList.erase(myList.begin(), -- myList.end());//输出myList的大小cout 链表大小为: myList.size() \n;//从头到尾输出myList中的元素for (const auto i : myList)cout i ;cout \n; int main() {//创建一个Listint对案myListlistint myList;//向myList尾部添加元素for (int i 1; i 5; i){myList.push_back(i);}// 从头到尾输出myList中的元素for (const auto i : myList)cout i ;cout \n;//将myList中的元素反转reverse(myList.begin(), myList.end());for (const auto i : myList)cout i ;cout \n;//在第一个元素的后一个位置加上元素0myList.insert(myList.begin(), 0);for (const auto i : myList)cout i ;cout \n;myList.erase(myList.begin(), -- myList.end());//输出myList的大小cout 链表大小为: myList.size() \n;//从头到尾输出myList中的元素for (const auto i : myList)cout i ;cout \n; } 二、stack 2.1stack的定义和结构 在C中stack是一个标准库容器它提供了后进先出LIFO, Last In First Out的数据结构。stack容器只允许在序列的同一端称为栈顶进行插入和删除操作。stack没有迭代器因此你不能像遍历其他容器如vector或list那样遍历stack。相反你只能查看栈顶元素、向栈中添加元素或从栈中移除元素。 stack提供了一组函数来操作和访问元素但它的功能相对较简单。stack的定义和结构如下 (仅作了解即可) template class T, class Container dequeT class stack; T:表示存储在stack中的元素的类型 Container: 表示底层容器的类型默认为deque。也可以使用其他容器类型如vector或list、stack的内部实现使用了底层容器来存储元素并且只能通过特定的函数来访问和操作元素。 stack的常用定义 //stack的定义 stackints1; //定义一个储存数据类型为int的stack容器s1 stackdoubles2; //定义一个储存数据类型为double的stack容器s2 stackstrings3; //定义一个储存数据类型为string的stack容器s3 stack结构体类型s4; //定义一个储存数据类型为结构体类型的stack容器s4 stackint s5[N]; //定义一个储存数据类型为int的stack容器数组,N为大小 stackint s6[N]; //定义一个储存数据类型为int的stack容器数组,N为大小 2.2常用函数 stack不能遍历 函数描述时间复杂度push(x)在栈顶插入元素 x0(1)pop弹出栈顶元素  0(1)top返回栈顶元素  0(1)empty检查栈是否为空  0(1)size返回栈中元素的个数0(1) 小tips: 如果将一个数组的元素依次放入栈再依次取出则可以将数组翻转。 2.3stack代码示例 #includeiostream #includestackusing namespace std;int main() {stackintmyStack;//向栈中插入元素myStack.push(10);myStack.push(20);myStack.push(30);myStack.push(40);//获取栈顶元素cout 栈顶元素 myStack.top() endl;//弹出栈顶元素myStack.pop();//再次获取栈顶元素cout 弹出一个元素后的栈顶元素 myStack.top() endl;//检查栈是否为空if (myStack.empty()) {cout 栈为空 endl;}else {cout 栈不为空 endl;}//获取栈的大小cout 栈的大小 myStack.size() endl;return 0; } 今天就先到这了 看到这里了还不给博主扣个 ⛳️ 点赞☀️收藏 ⭐️ 关注 你们的点赞就是博主更新最大的动力 有问题可以评论或者私信呢秒回哦。
http://www.zqtcl.cn/news/456984/

相关文章:

  • 建筑工程网站源码wordpress 多域名 图片不显示
  • 大型网站建设优化排名wordpress 投稿 插件
  • 二维码的网站如何做静安免费网站制作
  • 微网站免费模板管理网络的网站
  • 网站下载软件政企网站建设
  • 网站设计为什么要域名北京移动端网站设计
  • 自做网站多少钱哪个网站的课件做的好
  • 网站开发实现页面的跳转怎么添加网站关键词
  • 个人签名设计网站企业网站html模板
  • 做网站编辑大专可以吗小网站搜什么关键词好
  • 百度网首页登录入口宁波seo管理
  • 怎么把网站做的更好常州网站制作建设
  • 站长平台seo深圳有做公司网站
  • dedecms怎么部署网站云南网站定制
  • 禅城网站开发我赢网seo优化网站
  • 百度收录规则桂林seo公司推荐23火星
  • 做百度推广是网站好还是阿里好python开发工具
  • 秦皇岛网站制作小程序开发作图网站
  • 网站建设完整版指数是什么意思
  • 高端企业网站要多少钱网络推广文案招聘
  • 仿门户网站多功能js相册画廊源码 支持缩略小图浏览wordpress模版如何使用
  • 群晖nas可以做网站网页设计与制作步骤
  • 单位网站维护 网站建设岗位兰溪网站建设公司
  • 网站开发什么语言最好网站建设在国内外研究现状
  • 怎么看网站是用什么系统做的永久观看不收费的直播
  • 网站开发如何避免浏览器缓存的影响资讯网站开发的背景
  • 建网站 几个链接站长工具在线平台
  • 东营网站建设策划内容个人备案网站投放广告
  • 建立网站时服务器的基本配置有哪些做网站电信运营许可证
  • 如何阿里巴巴网站做推广方案怎么做网站的浏览栏