queue
(STL/CLR)
テンプレート クラスは、先入れ先出しアクセス権を持つ要素のさまざまな長さのシーケンスを制御するオブジェクトを記述します。 コンテナー アダプター queue
を使用して、基になるコンテナーをキューとして管理します。
次の説明では、 GValue
は、後者が ref 型でない限り、 Value
と同じです。その場合は Value^
。 同様に、 GContainer
は、後者が ref 型でない限り、 Container
と同じです。その場合は Container^
。
構文
template<typename Value,
typename Container>
ref class queue
: public
System::ICloneable,
Microsoft::VisualC::StlClr::IQueue<GValue, GContainer>
{ ..... };
パラメーター
Value
被制御シーケンス内の要素の型。
Container
基になるコンテナーの型。
要件
ヘッダー: <cliext/queue>
名前空間: cliext
重要
このトピックの例をコンパイルするには、「Visual Studio 2022 での C++/CLI のサポートのインストールで説明されているように、C++/CLI のサポートがインストールされていることを確認します。 プロジェクトの種類として、 CLR コンソール アプリ (.NET Framework)を作成します。
宣言
型定義 | 説明 |
---|---|
queue::const_reference |
要素への定数参照の型です。 |
queue::container_type |
基になるコンテナーの型。 |
queue::difference_type |
2 つの要素間の距離を表す、符号付きの型です。 |
queue::generic_container |
コンテナー アダプターのジェネリック インターフェイスの型です。 |
queue::generic_value |
コンテナー アダプターのジェネリック インターフェイスの要素の型です。 |
queue::reference |
要素への参照の型です。 |
queue::size_type |
2 つの要素間の距離を表す、符号付きの型です。 |
queue::value_type |
要素の型。 |
メンバー関数 | 説明 |
---|---|
queue::assign |
すべての要素を置換します。 |
queue::back |
最後の要素にアクセスします。 |
queue::empty |
要素が存在しないかどうかをテストします。 |
queue::front |
最初の要素にアクセスします。 |
queue::get_container |
基になるコンテナーにアクセスします。 |
queue::pop |
最初の要素を削除します。 |
queue::push |
新規に末尾の要素を追加します。 |
queue::queue |
コンテナー オブジェクトを構築します。 |
queue::size |
要素の数をカウントします。 |
queue::to_array |
被制御シーケンスを新しい配列にコピーします。 |
プロパティ | 説明 |
---|---|
queue::back_item |
最後の要素にアクセスします。 |
queue::front_item |
最初の要素にアクセスします。 |
Operator | 説明 |
---|---|
queue::operator= |
被制御シーケンスを置き換えます。 |
operator!= (キュー) |
queue オブジェクトが別のqueue オブジェクトと等しくないかどうかを判断します。 |
operator< (キュー) |
queue オブジェクトが別の queue オブジェクトより小さいかどうかを確認します。 |
operator<= (キュー) |
queue オブジェクトが別の queue オブジェクト以下かどうかを判断します。 |
operator== (キュー) |
queue オブジェクトが別の queue オブジェクトと等しいかどうかを判断します。 |
operator> (キュー) |
queue オブジェクトが別の queue オブジェクトより大きいかどうかを判断します。 |
operator>= (キュー) |
queue オブジェクトが別の queue オブジェクト以上かどうかを判断します。 |
インターフェイス
インターフェイス | 説明 |
---|---|
ICloneable | オブジェクトを複製します。 |
IQueue<Value, Container> |
ジェネリック コンテナー アダプターを維持します。 |
解説
オブジェクトは、Value
要素を格納し、オンデマンドで拡張するContainer
型の基になるコンテナーを介して制御するシーケンスのストレージを割り当て、解放します。 このオブジェクトでは、最初の要素のプッシュと最後の要素のポップだけにアクセスを制限して、先入れ先出しのキュー (FIFO キュー、または単にキューとも呼ばれます) を実装します。
メンバー
queue::assign
すべての要素を置換します。
構文
void assign(queue<Value, Container>% right);
パラメーター
right
挿入するコンテナー アダプター。
解説
このメンバー関数は、right.get_container()
を基になるコンテナーに割り当てます。 queue の内容全体を変更するには、これを使います。
例
// 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
2 つの要素間の符号付きの距離を表す型です。
構文
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();
解説
このメンバー関数は、被制御シーケンスの最初の要素への参照を返します。被制御シーケンスを空にすることはできません。 1 つ目の要素が存在することがわかったら、それを使用して最初の要素にアクセスします。
例
// 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
が ref 型の場合は 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);
解説
このメンバー関数は、queue の末尾に値 val
を持つ要素を追加します。 queue に要素を追加する場合に使います。
例
// 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();
解説
このメンバー関数は、被制御シーケンスの長さを返します。 被制御シーケンス内の現在の要素の数を特定する場合に使います。 シーケンスに 0 以外のサイズがあるかどうかを考慮する必要がある場合は、 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
2 つの要素間の距離を表す、符号付きの型です。
構文
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)
を返します。 これを使用して、2 つのキューが要素ごとに比較される場合に、 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
比較する右のコンテナー。
解説
演算子関数は、left[i] < right[i]
も true である!(right[i] < left[i])
i
最下位の位置に対して true を返します。 それ以外の場合は left->size() < right->size()
を返します。 これを使用して、2 つのキューが要素ごとに比較される場合に、 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)
を返します。 これを使用して、2 つのキューが要素ごとに比較されるときに、 left
が right
後に並べ替えられていないかどうかをテストします。
例
// 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
比較する右のコンテナー。
解説
演算子関数は、left
およびright
によって制御されるシーケンスの長さが同じで、各位置i
left[i] == right[i]
場合にのみ true を返します。 これを使用して、2 つのキューが要素ごとに比較される場合に、 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
を返します。 これを使用して、2 つのキューが要素ごとに比較されるときに、 left
が right
後に並べ替えられるかどうかをテストします。
例
// 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)
を返します。 これを使用して、2 つのキューが要素ごとに比較されるときに、 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