{大赦客之陸}
一定不換模板啊
很醜的Index
map
set
queue
FIFO
queue
佇列
First-In-First-Out
FIFO
#include <queue>
宣告
queue<int> q;
//queue<T> name;
queue<變數型態> 名稱;
.push()
queue<int> q;
q.push(1);
q.push(2);
q.push(3);
把東西push進queue
1
2
3
.front();.back()
queue<int> q;
cout<<q.front();
//1
cout<<q.back();
//3
回傳第一項跟最後一項
1
2
3
front
back
.pop()
queue<int> q;{1,2,3}
q.pop();{2,3}
移除第一項
1
2
3
front
back
2
3
back
.size();.empty()
queue<int> q;
cout<<q.size();//2
cout<<q.empty();//0
回傳queue的大小
回傳queue是否為空
2
front
3
back
.swap
queue<int> q1;
queue<int> q2;
q1.push(2);
q2.push(3);
q1.swap(q2);//swap(q1,q2)
cout<<q1.front();//3
交換兩個queue的元素
🫨注意只能在c++11用😑
這是補充(c++11)
template <typename T>
class Q{
public:
T front(){
return data_.front();
}
T back(){
return data_[data_.size()-1];
}
int size(){
return data_.size();
}
void push(T a){
data_.push_back(a);
}
void pop(){
for(int i=0;i<data_.size();i++){
data_[i]=data_[i+1];
}
data_.pop_back();
}
bool empty(){
return data_.empty();
}
private:
vector<T> data_;
};
聽說apcs會要你看手刻的queue
對不起我弱我不會寫O(1)的
stack
FILO
stack
堆疊
First-In-Last-Out
FILO
#include <stack>
宣告
stack<int> s;
//stack<T> name;
stack<變數型態> 名稱;
別問為啥是橫的
自己修圖一下轉90度
.push()
stack<int> s;
s.push(1);
s.push(2);
s.push(3);
把東西push進stack
1
2
3
.top()
stack<int> s;
cout<<s.top();
//3
回傳最右邊(最上面的值)
1
2
3
top
.pop()
stack<int> s;
s.pop();
移除最右邊(最上面的值)
1
2
3
top
top
.size();.empty()
queue<int> s;
cout<<s.size();//2
cout<<s.empty();//0
回傳queue的大小
回傳queue是否為空
1
2
template<typename T>
class S{
public:
T top(){
return data_[0];
}
int size(){
return data_.size();
}
bool empty(){
return data_.empty();
}
void push(T a){
data_.push_back(a);
}
void pop(){
data_.pop_back();
}
private:
vector<T> data_;
};
聽說apcs也會要你看手刻的stack
建中電研大赦課之陸
By brianlai
建中電研大赦課之陸
- 99