C++笔记之stack、queue、priority_queue、deque

code review!

C++笔记之stack、queue、priority_queue、deque

文章目录

  • C++笔记之stack、queue、priority_queue、deque
    • 一.cppreference介绍
      • 1.stack
      • 2.queue
      • 3.priority_queue
      • 4.deque
    • 二.容器适配器
    • 三.stack详解
      • 1.创建一个不包含任何元素的 stack 适配器,并采用默认的 deque 基础容器
      • 2.创建指定底层容器的 stack 适配器
      • 3.赋值
      • 4.没有迭代器
      • 5.stack的使用例程

一.cppreference介绍

1.stack

C++笔记之stack、queue、priority_queue、deque_第1张图片
C++笔记之stack、queue、priority_queue、deque_第2张图片

C++笔记之stack、queue、priority_queue、deque_第3张图片

C++笔记之stack、queue、priority_queue、deque_第4张图片

2.queue

C++笔记之stack、queue、priority_queue、deque_第5张图片
C++笔记之stack、queue、priority_queue、deque_第6张图片
C++笔记之stack、queue、priority_queue、deque_第7张图片

3.priority_queue

C++笔记之stack、queue、priority_queue、deque_第8张图片
C++笔记之stack、queue、priority_queue、deque_第9张图片
C++笔记之stack、queue、priority_queue、deque_第10张图片

4.deque

C++笔记之stack、queue、priority_queue、deque_第11张图片
C++笔记之stack、queue、priority_queue、deque_第12张图片
C++笔记之stack、queue、priority_queue、deque_第13张图片
C++笔记之stack、queue、priority_queue、deque_第14张图片

二.容器适配器

C++笔记之stack、queue、priority_queue、deque_第15张图片
C++笔记之stack、queue、priority_queue、deque_第16张图片

三.stack详解

1.创建一个不包含任何元素的 stack 适配器,并采用默认的 deque 基础容器

std::stack data;

2.创建指定底层容器的 stack 适配器

C++笔记之stack、queue、priority_queue、deque_第17张图片

3.赋值

C++笔记之stack、queue、priority_queue、deque_第18张图片

4.没有迭代器

stack没有其他的访问元素的方法,也就意味着,stack是不能被遍历的,因此也不提供迭代器。

5.stack的使用例程

C++笔记之stack、queue、priority_queue、deque_第19张图片
C++笔记之stack、queue、priority_queue、deque_第20张图片
代码

#include 
#include 
#include 
#include 
#include 

using namespace std;

template<class T>
void display(T& data)   //注意函数的入参,会修改传入的变量
{
//   int nCount = data.size();
//   for(int nIndex = 0; nIndex < nCount; ++nIndex) //如果使用for循环遍历,则不能用data.size()直接代替nCount,因为data.pop()会改变data.size()
   while (!data.empty())
  {
       cout << data.top() << " ";
       data.pop();
  }
   cout << endl;
}

int main(int argc, char* argv[])
{
   stack<int> data0;
   for(int nIndex = 0; nIndex < 10; ++nIndex)
  {
       data0.push(nIndex);
  }
   display(data0);     // 9 8 7 6 5 4 3 2 1 0

   stack<int, vector<int>> data;
   for(int nIndex = 0; nIndex < 10; ++nIndex)
  {
       data.push(nIndex);
  }
   display(data);      // 9 8 7 6 5 4 3 2 1 0

   vector<int> primes {1, 2, 3, 4};
   stack<int, vector<int>> data1(primes);
   display(data1);     // 4 3 2 1

   stack<int, list<int>> data2;
   for(int nIndex = 1; nIndex <= 10; ++nIndex)
  {
       data2.push(nIndex * 2);
  }
   display(data2);     // 20 18 16 14 12 10 8 6 4 2

   list<int> values {5, 6, 7, 8};
   stack<int, list<int>> data3(values);
   display(data3);     // 8 7 6 5

   list<int> value {11, 12, 13, 14};
   stack<int, list<int>> data4(value);
   stack<int, list<int>> data5 = data4;
   display(data5);     // 14 13 12 11
   display(data4);     // 14 13 12 11
   return 0;
}

你可能感兴趣的:(c++,笔记,开发语言)