自己dreamweaver做的網(wǎng)站怎么掛seo內(nèi)部優(yōu)化方案
目錄
一 stack常見構(gòu)造
1 空容器構(gòu)造函數(shù)(默認(rèn)構(gòu)造函數(shù))
2. 使用指定容器構(gòu)造
3 拷貝構(gòu)造函數(shù)
二 其他操作
1 empty
2 size
3 top
4 push && pop
5 emplace
6 swap
三 總結(jié)
一 stack常見構(gòu)造
1 空容器構(gòu)造函數(shù)(默認(rèn)構(gòu)造函數(shù))
構(gòu)造一個(gè)沒有元素的空容器。
2. 使用指定容器構(gòu)造
可以使用指定的底層容器來構(gòu)造棧,默認(rèn)是 std::deque
,但也可以是 std::vector
或 std::list
3 拷貝構(gòu)造函數(shù)
構(gòu)造一個(gè)容器,其中包含 x 中每個(gè)元素的副本,順序相同
#include<stack>
#include<vector>
#include<iostream>
using namespace std;int main()
{stack<int> st1;vector<int> v{ 1, 2, 3, 4 };stack<int, vector<int>> st2(v);cout << " st2: " << st2.size() << endl;stack<int, vector<int>> st3(st2);cout << " st3: " << st3.size() << endl;stack<int> st4(st1);cout << " st4: " << st4.size() << endl;return 0;}
二 其他操作
1 empty
?返回容器是否為空(即其大小是否為 0)
void Test1()
{stack<int> st;if (st.empty()) cout << " st is empty" << endl;else cout << "st is not empty" << endl;
}
2 size
上面已經(jīng)演示過了, 這里不說明了
3 top
返回棧頂元素
void Test2()
{vector<int> v{ 1, 2, 3, 4 };stack<int, vector<int>> st(v);cout << st.top() << endl;
}
4 push && pop
void push (const value_type& val);
void push (value_type&& val);
void pop();
void Test3()
{stack<int> st;st.push(1);st.push(2);st.push(3);while (!st.empty()){cout << st.top() << endl;st.pop();}}
5 emplace
?emplace 作用和 push 一樣的, 只是效率不一樣, 涉及到了右值引用問題, 后面再講
void Test4()
{stack<string> st;st.emplace("first");st.emplace("second");while (!st.empty()){cout << st.top() << endl;st.pop();}
}
6 swap
交換兩個(gè)容器的內(nèi)容
void swap (stack& x)
void Test5()
{stack<int> st1, st2;st1.push(1);st1.push(2);cout << st1.size() << endl;st2.push(10);st2.push(20);st2.push(30);cout << st2.size() << endl;st1.swap(st2);cout << st1.size() << endl;cout << st2.size() << endl;
}
三 總結(jié)
這節(jié)棧的使用非常簡單的, 感覺沒有啥要講的, 重要的是后面 棧的模擬實(shí)現(xiàn)還有和 隊(duì)列聯(lián)合使用. 對本節(jié)概念不清楚的, 可以看看我之前寫的棧數(shù)據(jù)結(jié)構(gòu). 那里就很清晰了.
這兩天成都一直下雨, 冷. 腦殼還有點(diǎn)暈, 最近學(xué)習(xí)Linux系統(tǒng), 學(xué)到線程了, 早聽說線程難, 沒想到這么難.繼續(xù)加油吧!