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

建一个网站大约多少钱php网站整合dz论坛

建一个网站大约多少钱,php网站整合dz论坛,各类网站排名,自适应网页模板建站目录 一、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.w-s-a.com/news/743646/

相关文章:

  • 行业 网站 方案莱州网站建设公司电话
  • 丹东谁做微网站威海网络科技有限公司
  • 寻找网站建设_网站外包自助打印微信小程序免费制作平台
  • 台式机网站建设vk社交网站做婚介
  • 创建网站得花多少钱网站建设的技术路线
  • 图书馆网站建设汇报免费编程软件哪个好用
  • 手机搭建网站工具网站搜索引擎优化的基本内容
  • 网站快速排名二手交易网站开发技术路线
  • 官方网站开发公司施工企业会计王玉红课后答案
  • 网站建设能用手机制作吗网站建设所需物资
  • 阜阳做网站的公司阳江招聘网最新消息
  • 织梦可以做哪些类型型网站wordpress 融资
  • 建设银行手机银行官方网站下载安装腾讯企点账户中心
  • 品牌设计网站有哪些商务网站建设平台
  • 新增网站备案时间什么是软件外包产业
  • 张家界做网站买了网站模版怎么做
  • 六安品牌网站建设怎么样知名商城网站建设报价
  • 怎么上传自己做的网站杭州网站建设公司平台
  • 网站开发程序是什么知名的电子商务网站
  • 做pc端网站好么平台推广是什么意思
  • 农业信息网站建设意义淘宝官网首页网址
  • 重庆网站设计公司价格贵阳网站建设app开发
  • dw做网站怎么换图片编写网页所用的语言是
  • 外贸网站收录工具个人网站的备案
  • 正规的网站建设工作室海外高延迟服务器做网站
  • 网站设计确认函合肥做网站维护的公司
  • 小说网站推荐网站开发语言怎么查
  • 网页制作基础教程慕课版电子版那种登录才能查看的网站怎么做优化
  • 制作网站用的域名网站域名注册信息查询
  • 公司域名查询官方网站女教师遭网课入侵直播录屏曝