C++【stack/queue】用法和例子

Stack的常用基本操作:
  1. s.push() // 压栈
  2. s.emplace() // 插入,相当于push(目前掌握的唯一区别是emplace可以自行调用构造函数,push不行)
  3. s.empty() // 判断栈空
  4. s.top() // 访问栈顶元素
  5. s.pop() // 退栈
  6. s.size() // 记录栈大小
/***
 * stack的基本操作
 * Jan 1 2019
 */


int main() {
       stack<double> s; // 定义一个栈  
       for (int i = 0; i < 10; i++)
              s.push(i);  // 压栈
       s.emplace(10);  // 相当于插入push
       while (!s.empty()) // 判断栈空
       {
              printf("%lf\n", s.top()); // 访问栈顶元素
              s.pop(); // 弹出栈
       }
       cout << "栈内的元素的个数为:" << s.size() << endl; // 栈大小
       return 0;
}

/// 输出结果
10.000000
9.000000
8.000000
7.000000
6.000000
5.000000
4.000000
3.000000
2.000000
1.000000
0.000000
栈内的元素的个数为:0


Queue的常用基本操作:
  1. q.push() // 入队
  2. q.emplace() // 插入,相当于push(区别同Stack)
  3. q.empty() // 判断队空
  4. q.front() // 访问队头元素
  5. q.back() // 访问队尾元素
  6. q.pop() // 出队
  7. q.size() // 记录队大小

 1 /***
 2  * queue的基本操作
 3  * Jan 1 2019
 4  */
 5 
 6 
 7 int main() {
 8     queue<double> q; // 定义一个队列 
 9     for (int i = 0; i < 10; i++)
10         q.push(i);  // 入队
11     q.emplace(10);  // 相当于插入push
12     printf("%lf\n", q.back()); // 访问队尾元素
13     while (!q.empty()) // 判断队空
14     {
15         printf("%lf\n", q.front()); // 访问队头元素
16         q.pop(); // 出队
17     }
18     cout << "队内的元素的个数为:" << q.size() << endl; // 队列大小
19     return 0;
20 }

/// 输出结果
10.000000
0.000000
1.000000
2.000000
3.000000
4.000000
5.000000
6.000000
7.000000
8.000000
9.000000
10.000000
队内的元素的个数为:0

 

posted @ 2019-01-30 23:54  糖醋麻辣虾  阅读(744)  评论(0编辑  收藏  举报