キュー(Queue)

キュー(Queue)とは先入れ先出しのリストのこと。「待ち行列」とも言う。VBSでは.NETのSystem.Collections.Queueを使うと簡単に作成できる。

Queue

' キューを作成
Dim myQueue
Set myQueue = CreateObject("System.Collections.Queue")

' 末尾にオブジェクトを追加
myQueue.Enqueue "Alice"
myQueue.Enqueue "Bob"
myQueue.Enqueue "Charlie"

' 先頭にあるオブジェクトを削除せずに返す
Wscript.echo myQueue.Peek

' 先頭にあるオブジェクトを削除し、返す
Wscript.echo myQueue.Dequeue
Wscript.echo myQueue.Dequeue

' 格納されている要素の数を取得
Wscript.echo myQueue.Count

' ある要素が存在するかどうかを判定
If myQueue.Contains("Charlie") Then
    Wscript.echo "Charlie exists."
End If

' 要素を配列にコピー
Dim myArray
myArray = myQueue.ToArray

' すべてのオブジェクトを削除
myQueue.Clear

スタック(Stack)

スタック(Stack)とは後入れ先出しのリストのこと。VBSでは.NETのSystem.Collections.Stackを使うと簡単に作成できる。

Stack

' スタックを作成
Dim myStack
Set myStack = CreateObject("System.Collections.Stack")

' 先頭にオブジェクトを挿入
myStack.Push "Alice"
myStack.Push "Bob"
myStack.Push "Charlie"

' 先頭にあるオブジェクトを削除せずに返す
Wscript.echo myStack.Peek

' 先頭にあるオブジェクトを削除し、返す
Wscript.echo myStack.Pop
Wscript.echo myStack.Pop

' 格納されている要素の数を取得
Wscript.echo myStack.Count

' ある要素が存在するかどうかを判定
If myStack.Contains("Charlie") Then
    Wscript.echo "Charlie exists."
End If

' 要素を配列にコピー
Dim myArray
myArray = myStack.ToArray

' すべてのオブジェクトを削除
myStack.Clear