stack,queue,dque

1.#include
容器的改編,它實現了一個先進後出的數據結構
在這裏插入圖片描述

    #include<iostream>    
    #include<stack>    
    using namespace std;    
    int main(void)    
    {    
        stack<double>s;//定義一個棧    
        for(int i=0;i<10;i++)    
            s.push(i);    
        while(!s.empty())    
        {    
            printf("%lf\n",s.top());    
            s.pop();    
        }    
        cout<<"棧內的元素的個數爲:"<<s.size()<<endl;    
        return 0;    
    }  
  1. #include
    注意:訪問和存元素不一樣,可以訪問第一個元素不代表可以直接存在第一個位置
    在這裏插入圖片描述
#include <iostream>
#include <queue>
 
using namespace std;
 
int main()
{
	int e, n, m;
	queue<int> q1;
	for (int i = 0; i<10; i++)
		q1.push(i);
	if (!q1.empty())
		cout << "dui lie bu kong\n";
	n = q1.size();
	cout << n << endl;
	m = q1.back();
	cout << m << endl;
	for (int j = 0; j<n; j++)
	{
		e = q1.front();
		cout << e << " ";
		q1.pop();
	}
	cout << endl;
	if (q1.empty())
		cout << "dui lie kong\n";
	system("PAUSE");
	return 0;
}

3.#include
在這裏插入圖片描述
在這裏插入圖片描述

    #include<stdio.h>  
    #include<deque>  
    using namespace std;  
    int main(void)  
    {  
        int i;  
        int a[10] = {0,1,2,3,4,5,6,7,8,9};  
        deque<int> q;  
        for(i=0;i<=9;i++)  
        {  
            if(i%2==0)  
                q.push_front(a[i]);  
            else  
                q.push_back(a[i]);  
        }                                  /*此時隊列裏的內容是: {8,6,4,2,0,1,3,5,7,9}*/  
        q.pop_front();  
        printf("%d\n", q.front());        /*清除第一個元素後輸出第一個(6)*/  
        q.pop_back();  
        printf("%d\n", q.back());         /*清除最後一個元素後輸出最後一個(7)*/  
        return 0;  
    }  

4.#include
vector的元素不僅僅可以是int, double, string,還可以是結構體,但是要注意:結構體要定義爲全局的,否則會出錯
在這裏插入圖片描述
在這裏插入圖片描述

https://blog.csdn.net/xiaoquantouer/article/details/51579148

template
class vector {
private:
T* pbegin; //指向T類型的指針
int n; //當前大小
public:
vector() {
pbegin = new T[100]; //暫時先固定大小
n = 0;
}

    T* begin() {  
        return pbegin;  
    }  
    void insert(T d){  
        pbegin[n++] = d;  
    }  
    typedef T* iterator; //vector的迭代器就是基礎指針類型  
};  



//測試vector  
//只要知道數組的首地址,就能知道後面每個元素的位置,所以,訪問vector的迭代器,其實就是一個基礎的指針類型,我們可以通過++,--等操作,來遍歷訪問該vector
    vector<int> a;  
    a.insert(1);  
    a.insert(2);  
    vector<int>::iterator itra;  
    itra = a.begin();  
    printf("%d/n", *itra);   
    itra++;  
    printf("%d/n", *itra);  
    itra--; //基礎指針類型都支持++,--,+,-等操作符  
    printf("%d/n", *itra);  

5 set

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章