スタック
1、基本的な考え方
後者は高度スタック(最初に最終アウト、FILO)のデータ構造であり、それが唯一の出口有する
高度なコンプライアンスが後スタックコンテナを
トラバース動作が許可されない
容器が空であるかどうかを判定することができる
要素の数を返すことができ
2、共通インタフェース
(1)コンストラクタ
実装デフォルトコンストラクタフォームスタックオブジェクトというテンプレートクラスを使用してスタック
stack<T> stk;
コピーコンストラクタ
stack(const stack &stk)
(2)割り当て
等価演算子のオーバーロード
stack& operator=(const stack &stk);
スタックの先頭に要素を追加します。
push(elem);
スタックの先頭から最初の要素を削除します
pop();
トップ要素を返します。
top();
(3)オペレーションサイズ
スタックが空であるかどうかを確認
empty()
リターンスタックサイズ
size()
次のように具体的な方法があります
#include<iostream>
using namespace std;
#include<stack>
void test01()
{
stack<int> s;
s.push(10);
s.push(20);
s.push(30);
s.push(40);
cout<<"栈的大小为:"<<s.size()<<endl;
while(!s.empty())
{
cout<<s.top()<<endl;
s.pop();
}
cout<<"栈的大小为:"<<s.size()<<endl;
}
int main()
{
test01();
}
キュー
1、基本的な考え方
キューは、二つの出口有するFIFO(先入れ先出し、FIFO)データ構造であり、
新たな終了を可能にする、素子の他端は、から削除された容器からキューエレメントを
チームのヘッドとテールキューだけはトラバーサル動作キューことはできませんので、使用外とすることができ、
チームのプッシュに-キューデータがにと呼ばれています
データキューは、デキューポップと呼ばれます...
2、共通インタフェース
(1)コンストラクタ
キューテンプレートクラスを使用して、その実装デフォルトコンストラクタフォームキューオブジェクト
queue<T>que;
コピーコンストラクタ
queue(const queue &que);
(2)割り当て
等価演算子のオーバーロード
queue&operator=(const queue&que);
(3)データアクセス
要素を追加する最後のチーム
push(elem);
最初の要素は、チームの先頭から削除されます
pop();
最後の要素を返します。
back();
最初の要素を返します。
front();
(4)操作のサイズは、
スタックが空であるか否かを判断します
empty();
リターンスタックサイズ
size();
例
#include<iostream>
using namespace std;
#include<queue>
class Person
{
public:
Person(string name,int age)
{
this->m_Age=age;
this->m_Name=name;
}
string m_Name;
int m_Age;
};
void test01()
{
queue<Person> q;
Person p1("a",18);
Person p2("b",20);
Person p3("c",30);
Person p4("d",40);
q.push(p1);
q.push(p2);
q.push(p3);
q.push(p4);
cout<<"栈的大小为:"<<q.size()<<endl;
while(!q.empty())
{
cout<<"队头的姓名:"<<q.front().m_Name<<"年龄为:"<<q.front().m_Age<<endl;
cout<<"队尾的姓名:"<<q.back().m_Name<<"年龄为:"<<q.back().m_Age<<endl;
cout<<endl;
q.pop();
}
cout<<"栈的大小为:"<<q.size()<<endl;
}
int main()
{
test01();
}