アルゴリズムのメモ - 標準テンプレートライブラリのSTL - スタック

スタックの一般的な使用法

スタックに翻訳スタックは、STLはで実装されLIFO容器

ヘッダ

#include<stack>
using namespace std;

の定義されたスタック

stack<typename> name;

スタックコンテナ要素内のアクセス

のみによるtop()トップ要素へのアクセス

#include<iostream>
#include<stack>
using namespace std;

int main(){
    stack<int> st;
    for(int i = 1; i <= 5; i++)
        st.push(i);

    printf("%d", st.top());	// 5

    return 0;
}

一般的に使用される関数のスタック

押す( )

スタックにxのプッシュ(x)は、時間計算量はO(1)であります

上( )

トップ()はトップエレメントにアクセスするために、時間計算量はO(1)であります

ポップ( )

トップ要素をポップするために()ポップ、時間複雑度はO(1)であります

#include<iostream>
#include<stack>
using namespace std;

int main(){
    stack<int> st;
    for(int i = 1; i <= 5; i++)
        st.push(i);

    for(int i = 1; i <= 3; i++)
        st.pop();               // 出栈3次

    printf("%d", st.top());     // 2

    return 0;
}

空の( )

空に()がfalse真空ではなく、空のリターンを返し、スタックが空で検出することができ、時間の複雑さはO(1)であります

サイズ()

サイズは()時間複雑度はO(1)であり、スタック内の要素の数を返します

#include<iostream>
#include<stack>
using namespace std;

int main(){
    stack<int> st;
    for(int i = 1; i <= 5; i++)
        st.push(i);

    for(int i = 1; i <= 3; i++)
        st.pop();               // 出栈3次

    st.empty() ? printf("Empty\n") : printf("No Empty\n");

    printf("%d\n", st.size());
    printf("%d", st.top());

    return 0;
}
No Empty
2
2

スタックの一般的な用途

  • エラーを実行するために、スタックメモリにつながった手続上の制限を防ぐため、いくつかの再帰を実装シミュレートするために使用

Gqqによる書き込み

おすすめ

転載: www.cnblogs.com/zgqcn/p/12588428.html