Freigeben über


priority_queue::priority_queue (STL/CLR)

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at priority_queue::priority_queue (STL/CLR).

Constructs a container adapter object.

Syntax

priority_queue();  
priority_queue(priority_queue<Value, Container> right);  
priority_queue(priority_queue<Value, Container> right);  
explicit priority_queue(value_compare^ pred);  
priority_queue(value_compare^ pred, container_type% cont);  
template<typename InIt>  
    priority_queue(InIt first, InIt last);  
template<typename InIt>  
    priority_queue(InIt first, InIt last,  
        value_compare^ pred);  
template<typename InIt>  
    priority_queue(InIt first, InIt last,  
        value_compare^ pred, container_type% cont);  

Parameters

cont
Container to copy.

first
Beginning of range to insert.

last
End of range to insert.

pred
Ordering predicate for the controlled sequence.

right
Object or range to insert.

Remarks

The constructor:

priority_queue();

creates an empty wrapped container, with the default ordering predicate. You use it to specify an empty initial controlled sequence, with the default ordering predicate.

The constructor:

priority_queue(priority_queue<Value, Container>% right);

creates a wrapped container that is a copy of right.get_container(), with the ordering predicate right.value_comp(). You use it to specify an initial controlled sequence that is a copy of the sequence controlled by the queue object right, with the same ordering predicate.

The constructor:

priority_queue(priority_queue<Value, Container>^ right);

creates a wrapped container that is a copy of right->get_container(), with the ordering predicate right->value_comp(). You use it to specify an initial controlled sequence that is a copy of the sequence controlled by the queue object *right, with the same ordering predicate.

The constructor:

explicit priority_queue(value_compare^ pred);

creates an empty wrapped container, with the ordering predicate pred. You use it to specify an empty initial controlled sequence, with the specified ordering predicate.

The constructor:

priority_queue(value_compare^ pred, container_type cont);

creates an empty wrapped container, with the ordering predicate pred, then pushes all the elements of cont You use it to specify an initial controlled sequence from an existing container, with the specified ordering predicate.

The constructor:

template<typename InIt>

priority_queue(InIt first, InIt last);

creates an empty wrapped container, with the default ordering predicate, then pushes the sequence [``first``, last``). You use it to specify an initial controlled sequence from a specified eqeuence, with the specified ordering predicate.

The constructor:

template<typename InIt>

priority_queue(InIt first, InIt last,

value_compare^ pred);

creates an empty wrapped container, with the ordering predicate pred, then pushes the sequence [``first``, last``). You use it to specify an initial controlled sequence from a specified seqeuence, with the specified ordering predicate.

The constructor:

template<typename InIt>

priority_queue(InIt first, InIt last,

value_compare^ pred, container_type% cont);

creates an empty wrapped container, with the ordering predicate pred, then pushes all the elements of cont plus the sequence [``first``, last``). You use it to specify an initial controlled sequence from an existing container and a specified seqeuence, with the specified ordering predicate.

Example

// cliext_priority_queue_construct.cpp   
// compile with: /clr   
#include <cliext/queue>   
#include <cliext/deque>   
  
typedef cliext::priority_queue<wchar_t> Mypriority_queue;   
typedef cliext::deque<wchar_t> Mydeque;   
int main()   
    {   
// construct an empty container   
    Mypriority_queue c1;   
    Mypriority_queue::container_type^ wc1 = c1.get_container();   
    System::Console::WriteLine("size() = {0}", c1.size());   
  
    c1.push(L'a');   
    c1.push(L'b');   
    c1.push(L'c');   
    for each (wchar_t elem in wc1)   
        System::Console::Write(" {0}", elem);   
    System::Console::WriteLine();   
  
// construct with an ordering rule   
    Mypriority_queue c2 = cliext::greater<wchar_t>();   
    System::Console::WriteLine("size() = {0}", c2.size());   
  
    for each (wchar_t elem in wc1)   
        c2.push(elem);   
    for each (wchar_t elem in c2.get_container())   
        System::Console::Write(" {0}", elem);   
    System::Console::WriteLine();   
  
// construct with an ordering rule by copying an underlying container   
    Mypriority_queue c2x =   
        gcnew Mypriority_queue(cliext::greater<wchar_t>(), *wc1);   
   for each (wchar_t elem in c2x.get_container())   
        System::Console::Write(" {0}", elem);   
    System::Console::WriteLine();   
  
// construct with an iterator range   
    Mypriority_queue c3(wc1->begin(), wc1->end());   
    for each (wchar_t elem in c3.get_container())   
        System::Console::Write(" {0}", elem);   
    System::Console::WriteLine();   
  
// construct with an iterator range and an ordering rule   
    Mypriority_queue c4(wc1->begin(), wc1->end(),   
        cliext::greater<wchar_t>());   
    for each (wchar_t elem in c4.get_container())   
        System::Console::Write(" {0}", elem);   
    System::Console::WriteLine();   
  
// construct with an iterator range, another container, and an ordering rule   
    Mypriority_queue c5(wc1->begin(), wc1->end(),   
        cliext::greater<wchar_t>(), *wc1);   
    for each (wchar_t elem in c5.get_container())   
        System::Console::Write(" {0}", elem);   
    System::Console::WriteLine();   
  
// construct from a generic container   
    Mypriority_queue c6(c3);   
    for each (wchar_t elem in c6.get_container())   
        System::Console::Write(" {0}", elem);   
    System::Console::WriteLine();   
  
// construct by copying another container   
    Mypriority_queue c7(%c3);   
    for each (wchar_t elem in c7.get_container())   
        System::Console::Write(" {0}", elem);   
    System::Console::WriteLine();   
  
// construct with an ordering rule, by copying an underlying container   
    Mypriority_queue c8 =   
        gcnew Mypriority_queue(cliext::greater<wchar_t>(), *wc1);   
    for each (wchar_t elem in c8.get_container())   
        System::Console::Write(" {0}", elem);   
    System::Console::WriteLine();   
  
    return (0);   
    }  
  
size
() = 0  
 c a b  
size
() = 0  
 a c b  
 a c b  
 c a b  
 a c b  
 a a b c c b  
 c a b  
 c a b  
 a c b  

Requirements

Header: <cliext/queue>

Namespace: cliext

See Also

priority_queue (STL/CLR)
priority_queue::assign (STL/CLR)
priority_queue::generic_container (STL/CLR)
priority_queue::operator= (STL/CLR)