queue
(STL/CLR)
Класс шаблона описывает объект, который управляет переменной длиной элементов с первым доступом. Используйте адаптер queue
контейнера для управления базовым контейнером в качестве очереди.
В следующем описании то же самое, GValue
что Value
и если последний не является типом ссылок, в этом случае это Value^
. Аналогичным образом, это то же самое, GContainer
что Container
и если последний не является типом ссылок, в этом случае это Container^
.
Синтаксис
template<typename Value,
typename Container>
ref class queue
: public
System::ICloneable,
Microsoft::VisualC::StlClr::IQueue<GValue, GContainer>
{ ..... };
Параметры
Value
Тип элемента в управляемой последовательности.
Container
Тип базового контейнера.
Требования
Заголовок: <cliext/queue>
Пространство имен: cliext
Внимание
Чтобы скомпилировать примеры в этом разделе, убедитесь, что вы установили поддержку C++/CLI, как описано в разделе "Установка C++/CLI" в Visual Studio 2022. Для типа проекта создайте консольное приложение CLR (платформа .NET Framework).
Объявления
Определение типа | Description |
---|---|
queue::const_reference |
Тип постоянной ссылки на элемент. |
queue::container_type |
Тип базового контейнера. |
queue::difference_type |
Тип расстояния со знаком между двумя элементами. |
queue::generic_container |
Тип универсального интерфейса для адаптера контейнера. |
queue::generic_value |
Тип элемента универсального интерфейса для адаптера контейнера. |
queue::reference |
Тип ссылки на элемент. |
queue::size_type |
Тип расстояния со знаком между двумя элементами. |
queue::value_type |
Тип элемента. |
Функция-член | Description |
---|---|
queue::assign |
Заменяет все элементы. |
queue::back |
Обращается к последнему элементу. |
queue::empty |
Проверяет отсутствие элементов. |
queue::front |
Обращается к первому элементу. |
queue::get_container |
Обращается к базовому контейнеру. |
queue::pop |
Удаляет первый элемент. |
queue::push |
Добавляет новый последний элемент. |
queue::queue |
Создает объект контейнера. |
queue::size |
Подсчитывает количество элементов. |
queue::to_array |
Копирует контролируемую последовательность в новый массив. |
Свойство | Description |
---|---|
queue::back_item |
Обращается к последнему элементу. |
queue::front_item |
Обращается к первому элементу. |
Operator | Description |
---|---|
queue::operator= |
Заменяет управляемую последовательность. |
operator!= (очередь) |
Определяет, не равен ли queue объект другому queue объекту. |
operator< (очередь) |
Определяет, меньше ли queue объект, чем другой queue объект. |
operator<= (очередь) |
Определяет queue , меньше ли объект или равен другому queue объекту. |
operator== (очередь) |
Определяет, равен ли queue объект другому queue объекту. |
operator> (очередь) |
Определяет, больше ли queue объект, чем другой queue объект. |
operator>= (очередь) |
Определяет queue , больше ли объект или равен другому queue объекту. |
Интерфейсы
Интерфейс | Description |
---|---|
ICloneable | Дублировать объект. |
IQueue<Value, Container> |
Обслуживание универсального адаптера контейнера. |
Замечания
Объект выделяет и освобождает хранилище для последовательности, которую он управляет с помощью базового контейнера типа Container
, который хранит Value
элементы и увеличивается по требованию. Объект ограничивает доступ только к отправке первого элемента и всплывающему элементу последнего элемента, реализации очереди первого выхода (также известной как очередь FIFO или просто очереди).
Участники
queue::assign
Заменяет все элементы.
Синтаксис
void assign(queue<Value, Container>% right);
Параметры
right
Адаптер контейнера для вставки.
Замечания
Функция-член назначает right.get_container()
базовому контейнеру. Вы используете его для изменения всего содержимого очереди.
Пример
// cliext_queue_assign.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign a repetition of values
Myqueue c2;
c2.assign(c1);
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
queue::back
Обращается к последнему элементу.
Синтаксис
reference back();
Замечания
Функция-член возвращает ссылку на последний элемент управляемой последовательности, который должен быть непустим. Вы используете его для доступа к последнему элементу, когда известно, что он существует.
Пример
// cliext_queue_back.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last item
System::Console::WriteLine("back() = {0}", c1.back());
// alter last item and reinspect
c1.back() = L'x';
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
back() = c
a b x
queue::back_item
Обращается к последнему элементу.
Синтаксис
property value_type back_item;
Замечания
Свойство обращается к последнему элементу управляемой последовательности, который должен быть непустим. Вы используете его для чтения или записи последнего элемента, когда известно, что он существует.
Пример
// cliext_queue_back_item.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last item
System::Console::WriteLine("back_item = {0}", c1.back_item);
// alter last item and reinspect
c1.back_item = L'x';
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
back_item = c
a b x
queue::const_reference
Тип постоянной ссылки на элемент.
Синтаксис
typedef value_type% const_reference;
Замечания
Тип описывает константную ссылку на элемент.
Пример
// cliext_queue_const_reference.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents "a b c"
for (; !c1.empty(); c1.pop())
{ // get a const reference to an element
Myqueue::const_reference cref = c1.front();
System::Console::Write("{0} ", cref);
}
System::Console::WriteLine();
return (0);
}
a b c
queue::container_type
Тип базового контейнера.
Синтаксис
typedef Container value_type;
Замечания
Этот тип является синонимом для параметра шаблона Container
.
Пример
// cliext_queue_container_type.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents "a b c" using container_type
Myqueue::container_type wc1 = c1.get_container();
for each (wchar_t elem in wc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
queue::difference_type
Типы подписанного расстояния между двумя элементами.
Синтаксис
typedef int difference_type;
Замечания
Тип описывает возможное отрицательное число элементов.
Пример
// cliext_queue_difference_type.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// compute negative difference
Myqueue::difference_type diff = c1.size();
c1.push(L'd');
c1.push(L'e');
diff -= c1.size();
System::Console::WriteLine("pushing 2 = {0}", diff);
// compute positive difference
diff = c1.size();
c1.pop();
c1.pop();
c1.pop();
diff -= c1.size();
System::Console::WriteLine("popping 3 = {0}", diff);
return (0);
}
a b c
pushing 2 = -2
popping 3 = 3
queue::empty
Проверяет отсутствие элементов.
Синтаксис
bool empty();
Замечания
Эта функция-член возвращает значение true для пустой управляемой последовательности. Это эквивалентно size() == 0
. Он используется для проверки того, является ли он queue
пустым.
Пример
// cliext_queue_empty.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("size() = {0}", c1.size());
System::Console::WriteLine("empty() = {0}", c1.empty());
// clear the container and reinspect
c1.pop();
c1.pop();
c1.pop();
System::Console::WriteLine("size() = {0}", c1.size());
System::Console::WriteLine("empty() = {0}", c1.empty());
return (0);
}
a b c
size() = 3
empty() = False
size() = 0
empty() = True
queue::front
Обращается к первому элементу.
Синтаксис
reference front();
Замечания
Функция-член возвращает ссылку на первый элемент управляемой последовательности, который не должен быть пустым. Вы используете его для доступа к первому элементу, когда вы знаете, что он существует.
Пример
// cliext_queue_front.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first item
System::Console::WriteLine("front() = {0}", c1.front());
// alter first item and reinspect
c1.front() = L'x';
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
front() = a
x b c
queue::front_item
Обращается к первому элементу.
Синтаксис
property value_type front_item;
Замечания
Свойство обращается к первому элементу управляемой последовательности, который должен быть непустим. Вы используете его для чтения или записи первого элемента, когда известно, что он существует.
Пример
// cliext_queue_front_item.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last item
System::Console::WriteLine("front_item = {0}", c1.front_item);
// alter last item and reinspect
c1.front_item = L'x';
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
front_item = a
x b c
queue::generic_container
Тип универсального интерфейса для адаптера контейнера.
Синтаксис
typedef Microsoft::VisualC::StlClr::IQueue<Value>
generic_container;
Замечания
Тип описывает универсальный интерфейс для этого класса адаптера контейнера шаблона.
Пример
// cliext_queue_generic_container.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
Myqueue::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1->get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
gc1->push(L'd');
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify original and display generic
c1.push(L'e');
for each (wchar_t elem in gc1->get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a b c d
a b c d e
queue::generic_value
Тип элемента для использования с универсальным интерфейсом для контейнера.
Синтаксис
typedef GValue generic_value;
Замечания
Тип описывает объект типа GValue
, описывающий значение хранимого элемента для использования с универсальным интерфейсом для этого класса контейнера шаблона. (GValue
имеет значение или является value_type
value_type
value_type^
типом ссылок.)
Пример
// cliext_queue_generic_value.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// get interface to container
Myqueue::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1->get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// display in order using generic_value
for (; !gc1->empty(); gc1->pop())
{
Myqueue::generic_value elem = gc1->front();
System::Console::Write("{0} ", elem);
}
System::Console::WriteLine();
return (0);
}
a b c
a b c
a b c
queue::get_container
Обращается к базовому контейнеру.
Синтаксис
container_type^ get_container();
Замечания
Функция-член возвращает базовый контейнер. Он используется для обхода ограничений, введенных оболочкой контейнера.
Пример
// cliext_queue_get_container.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
queue::operator=
Заменяет управляемую последовательность.
Синтаксис
queue <Value, Container>% operator=(queue <Value, Container>% right);
Параметры
right
Адаптер контейнера для копирования.
Замечания
Оператор-член копирует right
в объект, а затем возвращает *this
. Он позволяет заменить управляемую последовательность копией управляемой последовательности в right
.
Пример
// cliext_queue_operator_as.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Myqueue c2;
c2 = c1;
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
queue::pop
Удаляет первый элемент.
Синтаксис
void pop();
Замечания
Удаляет первый элемент управляемой последовательности, который должен быть непустим.
Пример
// cliext_queue_pop.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// pop an element and redisplay
c1.pop();
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
b c
queue::push
Добавляет новый последний элемент.
Синтаксис
void push(value_type val);
Замечания
Функция-член добавляет элемент со значением val
в конце очереди. Он используется для добавления элемента в очередь.
Пример
// cliext_queue_push.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
queue::queue
Создает объект адаптера контейнера.
Синтаксис
queue();
queue(queue<Value, Container>% right);
queue(queue<Value, Container>^ right);
explicit queue(container_type% wrapped);
Параметры
right
Объект для копирования.
wrapped
Контейнер, который нужно использовать.
Замечания
Конструктор:
queue();
создает пустой контейнер оболочки. Он используется для указания пустой управляемой последовательности.
Конструктор:
queue(queue<Value, Container>% right);
создает упакованный контейнер, который является копией right.get_container()
. Он используется для указания начальной управляемой последовательности, которая является копией последовательности, управляемой queue
объектом right
.
Конструктор:
queue(queue<Value, Container>^ right);
создает упакованный контейнер, который является копией right->get_container()
. Он используется для указания начальной управляемой последовательности, которая является копией последовательности, управляемой queue
объектом *right
.
Конструктор:
explicit queue(container_type wrapped);
использует существующий контейнер в качестве упаковаемого контейнера wrapped
. Он используется для создания queue
из существующего контейнера.
Пример
// cliext_queue_construct.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
#include <cliext/list>
typedef cliext::queue<wchar_t> Myqueue;
typedef cliext::list<wchar_t> Mylist;
typedef cliext::queue<wchar_t, Mylist> Myqueue_list;
int main()
{
// construct an empty container
Myqueue c1;
System::Console::WriteLine("size() = {0}", c1.size());
// construct from an underlying container
Mylist v2(5, L'x');
Myqueue_list c2(v2);
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying another container
Myqueue_list c3(c2);
for each (wchar_t elem in c3.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying another container through handle
Myqueue_list c4(%c2);
for each (wchar_t elem in c4.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
size() = 0
x x x x x
x x x x x
x x x x x
queue::reference
Тип ссылки на элемент.
Синтаксис
typedef value_type% reference;
Замечания
Тип описывает ссылку на элемент.
Пример
// cliext_queue_reference.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify back of queue and redisplay
Myqueue::reference ref = c1.back();
ref = L'x';
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b x
queue::size
Подсчитывает количество элементов.
Синтаксис
size_type size();
Замечания
Функция-член возвращает длину управляемой последовательности. Он используется для определения количества элементов в текущей управляемой последовательности. Если все, что вам нужно, заключается в том, имеет ли последовательность ненулевое значение, см empty()
. раздел .
Пример
// cliext_queue_size.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("size() = {0} starting with 3", c1.size());
// pop an item and reinspect
c1.pop();
System::Console::WriteLine("size() = {0} after popping", c1.size());
// add two elements and reinspect
c1.push(L'a');
c1.push(L'b');
System::Console::WriteLine("size() = {0} after adding 2", c1.size());
return (0);
}
a b c
size() = 3 starting with 3
size() = 2 after popping
size() = 4 after adding 2
queue::size_type
Тип расстояния со знаком между двумя элементами.
Синтаксис
typedef int size_type;
Замечания
Тип описывает число элементов, не являющихся отрицательными.
Пример
// cliext_queue_size_type.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// compute positive difference
Myqueue::size_type diff = c1.size();
c1.pop();
c1.pop();
diff -= c1.size();
System::Console::WriteLine("size difference = {0}", diff);
return (0);
}
a b c
size difference = 2
queue::to_array
Копирует контролируемую последовательность в новый массив.
Синтаксис
cli::array<Value>^ to_array();
Замечания
Функция-член возвращает массив, содержащий контролируемую последовательность. Он используется для получения копии управляемой последовательности в форме массива.
Пример
// cliext_queue_to_array.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// copy the container and modify it
cli::array<wchar_t>^ a1 = c1.to_array();
c1.push(L'd');
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// display the earlier array copy
for each (wchar_t elem in a1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c d
a b c
queue::value_type
Тип элемента.
Синтаксис
typedef Value value_type;
Замечания
Этот тип является синонимом для параметра шаблона Value
.
Пример
// cliext_queue_value_type.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display reversed contents "a b c" using value_type
for (; !c1.empty(); c1.pop())
{ // store element in value_type object
Myqueue::value_type val = c1.front();
System::Console::Write("{0} ", val);
}
System::Console::WriteLine();
return (0);
}
a b c
operator!=
(очередь)
Queue
не равное сравнение.
Синтаксис
template<typename Value,
typename Container>
bool operator!=(queue<Value, Container>% left,
queue<Value, Container>% right);
Параметры
left
Левый контейнер для сравнения.
right
Правый контейнер для сравнения.
Замечания
Функция оператора возвращает .!(left == right)
Вы используете его для проверки того, не упорядочено ли left
одно и то же, что right
и при сравнении двух очередей по элементу.
Пример
// cliext_queue_operator_ne.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Myqueue c2;
c2.push(L'a');
c2.push(L'b');
c2.push(L'd');
// display contents "a b d"
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] != [a b c] is {0}",
c1 != c1);
System::Console::WriteLine("[a b c] != [a b d] is {0}",
c1 != c2);
return (0);
}
a b c
a b d
[a b c] != [a b c] is False
[a b c] != [a b d] is True
operator<
(очередь)
Queue
меньше сравнения.
Синтаксис
template<typename Value,
typename Container>
bool operator<(queue<Value, Container>% left,
queue<Value, Container>% right);
Параметры
left
Левый контейнер для сравнения.
right
Правый контейнер для сравнения.
Замечания
Функция оператора возвращает значение true, если для наименьшей позиции i
, для которой !(right[i] < left[i])
она также имеет значение true left[i] < right[i]
. В противном случае возвращается значение left->size() < right->size()
. Он используется для проверки того, упорядочивается ли left
он до right
того, когда две очереди сравниваются по элементу.
Пример
// cliext_queue_operator_lt.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Myqueue c2;
c2.push(L'a');
c2.push(L'b');
c2.push(L'd');
// display contents "a b d"
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] < [a b c] is {0}",
c1 < c1);
System::Console::WriteLine("[a b c] < [a b d] is {0}",
c1 < c2);
return (0);
}
a b c
a b d
[a b c] < [a b c] is False
[a b c] < [a b d] is True
operator<=
(очередь)
Queue
меньше или равное сравнение.
Синтаксис
template<typename Value,
typename Container>
bool operator<=(queue<Value, Container>% left,
queue<Value, Container>% right);
Параметры
left
Левый контейнер для сравнения.
right
Правый контейнер для сравнения.
Замечания
Функция оператора возвращает .!(right < left)
Вы используете его для проверки того, не упорядочено right
ли left
после сравнения двух очередей по элементу.
Пример
// cliext_queue_operator_le.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Myqueue c2;
c2.push(L'a');
c2.push(L'b');
c2.push(L'd');
/ / display contents "a b d"
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] <= [a b c] is {0}",
c1 <= c1);
System::Console::WriteLine("[a b d] <= [a b c] is {0}",
c2 <= c1);
return (0);
}
a b c
a b d
[a b c] <= [a b c] is True
[a b d] <= [a b c] is False
operator==
(очередь)
Queue
равное сравнение.
Синтаксис
template<typename Value,
typename Container>
bool operator==(queue<Value, Container>% left,
queue<Value, Container>% right);
Параметры
left
Левый контейнер для сравнения.
right
Правый контейнер для сравнения.
Замечания
Функция оператора возвращает значение true, только если последовательности, left
контролируемые и имеют одинаковую длину и right
для каждой позицииi
. left[i] == right[i]
Вы используете его для проверки того, упорядочено ли left
то же, что right
и при сравнении двух очередей по элементу.
Пример
// cliext_queue_operator_eq.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Myqueue c2;
c2.push(L'a');
c2.push(L'b');
c2.push(L'd');
// display contents "a b d"
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] == [a b c] is {0}",
c1 == c1);
System::Console::WriteLine("[a b c] == [a b d] is {0}",
c1 == c2);
return (0);
}
a b c
a b d
[a b c] == [a b c] is True
[a b c] == [a b d] is False
operator>
(очередь)
Queue
больше, чем сравнение.
Синтаксис
template<typename Value,
typename Container>
bool operator>(queue<Value, Container>% left,
queue<Value, Container>% right);
Параметры
left
Левый контейнер для сравнения.
right
Правый контейнер для сравнения.
Замечания
Функция оператора возвращает .right < left
Он используется для проверки того, упорядочивается right
ли left
после сравнения двух очередей по элементу.
Пример
// cliext_queue_operator_gt.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Myqueue c2;
c2.push(L'a');
c2.push(L'b');
c2.push(L'd');
// display contents "a b d"
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] > [a b c] is {0}",
c1 > c1);
System::Console::WriteLine("[a b d] > [a b c] is {0}",
c2 > c1);
return (0);
}
a b c
a b d
[a b c] > [a b c] is False
[a b d] > [a b c] is True
operator>=
(очередь)
Queue
больше или равное сравнение.
Синтаксис
template<typename Value,
typename Container>
bool operator>=(queue<Value, Container>% left,
queue<Value, Container>% right);
Параметры
left
Левый контейнер для сравнения.
right
Правый контейнер для сравнения.
Замечания
Функция оператора возвращает .!(left < right)
Он используется для проверки того, left
не упорядочен ли он раньше right
, когда две очереди сравниваются по элементу.
Пример
// cliext_queue_operator_ge.cpp
// compile with: /clr
#include "pch.h"
#include <cliext/queue>
typedef cliext::queue<wchar_t> Myqueue;
int main()
{
Myqueue c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents "a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Myqueue c2;
c2.push(L'a');
c2.push(L'b');
c2.push(L'd');
// display contents "a b d"
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] >= [a b c] is {0}",
c1 >= c1);
System::Console::WriteLine("[a b c] >= [a b d] is {0}",
c1 >= c2);
return (0);
}
a b c
a b d
[a b c] >= [a b c] is True
[a b c] >= [a b d] is False