草庐IT

C++进阶-3-4stack容器、queue容器

LYH-win 2023-03-28 原文

C++进阶-3-4stack容器、queue容器

  1 #include<iostream>
  2 #include<stack>
  3 #include<queue>
  4 using namespace std;
  5 
  6 // stack 容器
  7 // 先进后出
  8 
  9 // queue 容器
 10 // 先进先出
 11 
 12 // stack 容器
 13 void test01() {
 14 
 15     stack<int>s;
 16 
 17     // 入栈
 18     s.push(10);
 19     s.push(20);
 20     s.push(30);
 21     s.push(40);
 22 
 23     cout << "栈的大小:" << s.size() << endl;
 24 
 25     // 只要栈不为空,查看栈顶,并且执行出栈操作
 26     while (!s.empty())
 27     {
 28         // 查看栈顶元素
 29         cout << "栈顶元素为:" << s.top() << endl;
 30 
 31         // 出栈
 32         s.pop();
 33     }
 34     cout << "栈的大小:" << s.size() << endl;
 35 
 36 }
 37 
 38 
 39 // queue 容器
 40 
 41 class Person {
 42 
 43 public:
 44     Person(string name, int age) {
 45         this->m_Name = name;
 46         this->m_Age = age;
 47     }
 48     string m_Name;
 49     int m_Age;
 50 };
 51 
 52 void test02() {
 53 
 54     // 创建队列
 55     queue<Person>q;
 56 
 57     // 准备数据
 58     Person p1("唐僧", 30);
 59     Person p2("孙悟空", 45);
 60     Person p3("猪八戒", 60);
 61     Person p4("沙悟净", 10);
 62 
 63     // 入队
 64     q.push(p1);
 65     q.push(p2);
 66     q.push(p3);
 67     q.push(p4);
 68 
 69     cout << "队列大小为:" << q.size() << endl;
 70 
 71     // 判断只要队列不为空,查看队头,查看队尾
 72     while (!q.empty())
 73     {
 74         // 查看队头
 75         cout << "队头元素 --- 姓名:" << q.front().m_Name << " 年龄:" << q.front().m_Age << endl;
 76 
 77         // 查看队尾
 78         cout << "队头元素 --- 姓名:" << q.back().m_Name << " 年龄:" << q.back().m_Age << endl;
 79 
 80         // 出队
 81         q.pop();
 82     }
 83 
 84     cout << "队列大小为:" << q.size() << endl;
 85 
 86 }
 87 
 88 int main() {
 89 
 90     // stack容器
 91     //test01();
 92 
 93     // queue容器
 94     test02();
 95 
 96     system("pause");
 97 
 98     return 0;
 99 }
100 
101 // 总结
102 // 
103 // stack容器
104 // 
105 // 概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,他只有一个出口
106 // 
107 // 栈中只有顶端元素才可以被外界使用,因此栈不允许有遍历行为
108 // 
109 // stack不允许有遍历行为
110 // 
111 // 
112 // 
113 // queue 容器
114 // 
115 // 概念:queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口
116 // 
117 // queue不允许有遍历行为
118 // 

 

有关C++进阶-3-4stack容器、queue容器的更多相关文章

  1. ruby - 为什么我用递归得到 "stack level too deep"? - 2

    我有这个ruby代码:defget_sumnreturn0ifn似乎正在为999之前的值工作。当我尝试9999时,它给了我这个:stackleveltoodeep(SystemStackError)所以,我添加了这个:RubyVM::InstructionSequence.compile_option={:tailcall_optimization=>true,:trace_instruction=>false}但什么也没发生。我的ruby版本是:ruby1.9.3p392(2013-02-22revision39386)[x86_64-darwin12.2.1]我还增加了机器的堆栈大

  2. Ruby 1.9.2-p-180 失败,返回 'illegal instruction' 或 'stack level too deep (SystemStackError)' - 2

    行为:Ruby1.9.2p180因“非法指令”而失败,没有其他详细信息。Ruby1.9.1p378运行完全没有问题。失败发生在pin=fronto.index(k)行中,仅在某些迭代中发生。from和into都是对象数组,by是该对象的属性(x或y)。代码:defadd_from_to_byfrom,into,bynto=into.sort_by{|k|k.send(by)}fronto=(from+nto).sort_by{|k|k.send(by)}dict={}nto.each{|k|dict[k]=[]}nto.eachdo|k|pin=fronto.index(k)up=pi

  3. Ruby 2.0 抛出 "[BUG] Stack consistency error" - 2

    我正在学习RubyKoans中的练习在about_proxy_object_project.rb中有这段代码:classProxydefinitialize(target_object)@object=target_objectend#Thismethodwasaddedbymedefmethod_missing(method_name,*args,&block)@object.sendmethod_nameendend这样调用:deftest_tv_methods_still_perform_their_functiontv=Proxy.new(Television.new)#Tel

  4. ruby-on-rails - 如何在 Rails 3.2 中找到 "SystemStackError (stack level too deep)"的来源 - 2

    我从Rails3.0迁移到3.2。当我尝试显示页面时出现错误,只有这个小堆栈跟踪:SystemStackErrorinUserController#showstackleveltoodeepSystemStackError(stackleveltoodeep):activesupport(3.2.1)lib/active_support/callbacks.rb:415Rendered/home/barbacan/.rvm/gems/ruby-1.9.2-head/gems/actionpack-3.2.1/lib/action_dispatch/middleware/template

  5. ruby-on-rails - 如何在 Stack Overflow 或 Quora 上创建标签系统 - 2

    我想创建一个标签系统,就像在StackOverflow或Quora上看到的那样。它将是自己的模型,我打算使用thisautocompleteplugin帮助用户找到标签。我有几个问题:我希望标签完全由用户生成。如果用户通过键入新标签并按下“添加”按钮来输入新标签,则该标签将添加到数据库中,但如果用户键入现有标签,则会使用该标签。我正在考虑使用这样的代码:defcreate@video.tags=find_or_create_by_name(@video.tags.name)end我走在正确的rails上吗?我想在StackOverflow或Quora上实现类似的功能,这样当您单击建议列

  6. ruby-on-rails - FactoryGirl 关联模型故障 : "SystemStackError: stack level too deep" - 2

    我正在使用RubyonRails3.0.9、RSpec-rails2和FactoryGirl。我正在尝试陈述一个工厂协会模型,但我遇到了麻烦。我有一个factories/user.rb文件,如下所示:FactoryGirl.definedofactory:user,:class=>Userdoattribute_1attribute_2...association:account,:factory=>:users_account,:method=>:build,:email=>'foo@bar.com'endend和一个factories/users/account.rb文件,如下所示

  7. ruby - “Stack level too deep” 运行 rake 数据库 :create:all - 2

    当我运行rakedb:create:all时,我收到以下消息:/Users/junior/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-0.9.2/lib/rake/version.rb:4:warning:alreadyinitializedconstantMAJOR/Users/junior/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-0.9.2/lib/rake/version.rb:5:warning:alreadyinitializedconstantMINOR/Users/junior/.rv

  8. 大家沉迷短视频无法自拔?Python爬虫进阶,带你玩转短视频 - 2

    大家好,我是辣条。现在短视频可谓是一骑绝尘,吃饭的时候、休息的时候、躺在床上都在刷短视频,今天给大家带来python爬虫进阶:美拍视频地址加密解析。短视频js逆向解析抓取目标工具使用重点学习内容项目思路解析抓取目标目标网址:美拍视频工具使用开发环境:win10、python3.7开发工具:pycharm、Chrome工具包:requests、xpath、base64重点学习内容爬虫采集数据的解析过程js代码调试技巧js逆向解析代码Python代码的转换项目思路解析进入到网站的首页挑选你感兴趣的分类根据首页地址获取到进入详情页面的超链接的跳转地址找到对应加密的视频播放地址数据这个数据是静态的网页

  9. ruby-on-rails - 我的抓取 "stack"应该如何处理 404 错误? - 2

    我有一个rake任务,负责对数百万个URL进行批处理。因为这个过程需要很长时间,我有时会发现我尝试处理的URL不再有效——404、站点已关闭等等。当我最初写这篇文章时,基本上只有一个站点在处理过程中会不断崩溃,所以我的解决方案是使用open-uri,挽救产生的任何异常,稍等片刻,然后重试.这在数据集较小时效果很好,但现在时间过去了很多,我发现URL不再存在并产生404。使用404的情况,当这种情况发生时,我的脚本会停在那里并无限循环——显然很糟糕。我应该如何处理页面未成功加载的情况,更重要的是,这如何适应我构建的“堆栈”?我对这个和Rails很陌生,所以欢迎就我在这个设计中可能出错的地

  10. ruby-on-rails - 为什么我的 rails3 beta4 模型中出现 "SystemStackError: stack level too deep" - 2

    在ruby1.9.2-rc1rails3beta4中执行以下代码时,出现以下错误:SystemStackError:stackleveltoodeep/:ruby-1.9.2-rc1>f=Forum.all.first=>#ruby-1.9.2-rc1>f.children=>[#]ruby-1.9.2-rc1>f.forum_type="thread"=>"thread"ruby-1.9.2-rc1>f.saveSystemStackError:stackleveltoodeepfrom/Users/emilkampp/.rvm/rubies/ruby-1.9.2-rc1/lib/r

随机推荐