Giriş
Şu satırı dahil ederiz.
Tanımlamak için altta kullanacağı container belirtilmeden aşağıdaki gibi yapılabilir.
Kullanılması arzu edilen container da belirtilebilir.
Şu satırı dahil ederiz.
#include <queue>
Priority Queue, Queue, Stack container adapter sınıfları olarak tabir edilirler. Bir FIFO kuyruk gibi aşağıdaki metodları destekler.back()
front()
push_back()
pop_front()
Constructor - DefaultTanımlamak için altta kullanacağı container belirtilmeden aşağıdaki gibi yapılabilir.
std::queue<int> first; // empty queue
Bu durumda alttaki container bir dequeue olur.template <class T,class Container=std::deque<T>> class queue;
Constructor - Container TypeKullanılması arzu edilen container da belirtilebilir.
std::queue<int,std::list<int> > third;
Belirtilen container bir sequence container olmalıdır.Container - The type of the underlying container to use to store the elements. The container must satisfy the requirements of SequenceContainer.
front metodu
Şöyle yaparız.
Eğer kuyruk boş iken çağrılırsa davranışı tanımsızdır. Şöyle yaparız.
container'a erişmek
1. Kalıtım
Açıklaması şöyle.
Şöyle yaparız.
int i = queue.front();
pop metoduEğer kuyruk boş iken çağrılırsa davranışı tanımsızdır. Şöyle yaparız.
// Remove element from empty queue
queue.pop();
Diğercontainer'a erişmek
1. Kalıtım
Açıklaması şöyle.
Stack and queue aren't containers. They are container adaptors. By design they do not expose raw access to the underlying container. But the underlying containers are serializable standard library containers (vector<> and deque<>, by default respectively). And the standard does specify that the implementation expose it as protected membersİsmi c olan bir alan şeklindedir.
Örnek
Şöyle yaparız.
template <typename... Args>
struct MyQueue : std::queue<Args...> {
using base = std::queue<Args...>;
using base::base;
using base::operator=;
template <typename Ar>
void serialize(Ar& ar, unsigned /*version*/) { ar & base::c; }
};
Hiç yorum yok:
Yorum Gönder