Ada 中队列的向量
Vector of Queues in Ada
Vector的Element_Type没有限制,而Queue有。如何组织队列向量?
with Ada.Containers.Unbounded_Synchronized_Queues;
with Ada.Containers.Synchronized_Queue_Interfaces;
with Ada.Containers.Vectors;
package Queue_Vector is
package Integer_Queue_Interfaces is new
Ada.Containers.Synchronized_Queue_Interfaces
(Element_Type => Integer);
package Integer_Queues is new
Ada.Containers.Unbounded_Synchronized_Queues
(Queue_Interfaces => Integer_Queue_Interfaces);
package Queue_Vectors is new
Ada.Containers.Vectors
(Index_Type => Positive,
Element_Type => Integer_Queues.Queue);
end Queue_Vector;
这很不舒服,但编译:
type Integer_Queue_P is access Integer_Queues.Queue;
package Queue_Vectors is new
Ada.Containers.Vectors
(Index_Type => Positive,
Element_Type => Integer_Queue_P);
您可能希望从 Integer_Queue_P
中创建一个智能指针(如 here),以确保实际的 Queue
在覆盖或删除Vector
.
我没有考虑到在未受保护的向量中访问受保护队列是没有意义的,向量也必须被保护。所以我制作了一个包含 Hashed_Map 个 Vector 的安全对象来解决我的问题。
Vector的Element_Type没有限制,而Queue有。如何组织队列向量?
with Ada.Containers.Unbounded_Synchronized_Queues;
with Ada.Containers.Synchronized_Queue_Interfaces;
with Ada.Containers.Vectors;
package Queue_Vector is
package Integer_Queue_Interfaces is new
Ada.Containers.Synchronized_Queue_Interfaces
(Element_Type => Integer);
package Integer_Queues is new
Ada.Containers.Unbounded_Synchronized_Queues
(Queue_Interfaces => Integer_Queue_Interfaces);
package Queue_Vectors is new
Ada.Containers.Vectors
(Index_Type => Positive,
Element_Type => Integer_Queues.Queue);
end Queue_Vector;
这很不舒服,但编译:
type Integer_Queue_P is access Integer_Queues.Queue;
package Queue_Vectors is new
Ada.Containers.Vectors
(Index_Type => Positive,
Element_Type => Integer_Queue_P);
您可能希望从 Integer_Queue_P
中创建一个智能指针(如 here),以确保实际的 Queue
在覆盖或删除Vector
.
我没有考虑到在未受保护的向量中访问受保护队列是没有意义的,向量也必须被保护。所以我制作了一个包含 Hashed_Map 个 Vector 的安全对象来解决我的问题。