Ada 编程/库/Ada.Containers.Ordered Sets
外观
此语言特性仅从 Ada 2005 开始可用。
Ada.Containers.Ordered_Sets 是从 Ada 2005 开始 预定义语言环境 的一个单元。
-- Standard Ada library specification -- Copyright (c) 2003-2018 Maxim Reznik <reznikmm@gmail.com> -- Copyright (c) 2004-2016 AXE Consultants -- Copyright (c) 2004, 2005, 2006 Ada-Europe -- Copyright (c) 2000 The MITRE Corporation, Inc. -- Copyright (c) 1992, 1993, 1994, 1995 Intermetrics, Inc. -- SPDX-License-Identifier: BSD-3-Clause and LicenseRef-AdaReferenceManual -- -------------------------------------------------------------------------generictypeElement_Typeisprivate;withfunction"<" (Left :inElement_Type; Right :inElement_Type)returnBooleanis<>;withfunction"=" (Left :inElement_Type; Right :inElement_Type)returnBooleanis<>;packageAda.Containers.Ordered_SetsispragmaPreelaborate (Ordered_Sets);functionEquivalent_Elements (Left :inElement_Type; Right :inElement_Type)returnBoolean;typeSetistaggedprivate;pragmaPreelaborable_Initialization (Set);typeCursorisprivate;pragmaPreelaborable_Initialization (Cursor); Empty_Set :constantSet; No_Element :constantCursor;function"=" (Left :inSet; Right :inSet)returnBoolean;functionEquivalent_Sets (Left :inSet; Right :inSet)returnBoolean;functionTo_Set (New_Item :inElement_Type)returnSet;functionLength (Container :inSet)returnCount_Type;functionIs_Empty (Container :inSet)returnBoolean;procedureClear (Container :inoutSet);functionElement (Position :inCursor)returnElement_Type;procedureReplace_Element (Container :inoutSet; Position :inCursor; New_Item :inElement_Type);procedureQuery_Element (Position :inCursor; Process :notnullaccessprocedure(Element :inElement_Type));procedureMove (Target :inoutSet; Source :inoutSet);procedureInsert (Container :inoutSet; New_Item :inElement_Type; Position :outCursor; Inserted :outBoolean);procedureInsert (Container :inoutSet; New_Item :inElement_Type);procedureInclude (Container :inoutSet; New_Item :inElement_Type);procedureReplace (Container :inoutSet; New_Item :inElement_Type);procedureExclude (Container :inoutSet; Item :inElement_Type);procedureDelete (Container :inoutSet; Item :inElement_Type);procedureDelete (Container :inoutSet; Position :inoutCursor);procedureDelete_First (Container :inoutSet);procedureDelete_Last (Container :inoutSet);procedureUnion (Target :inoutSet; Source :inSet);functionUnion (Left :inSet; Right :inSet)returnSet;function"or" (Left :inSet; Right :inSet)returnSetrenamesUnion;procedureIntersection (Target :inoutSet; Source :inSet);functionIntersection (Left :inSet; Right :inSet)returnSet;function"and" (Left :inSet; Right :inSet)returnSetrenamesIntersection;procedureDifference (Target :inoutSet; Source :inSet);functionDifference (Left :inSet; Right :inSet)returnSet;function"-" (Left :inSet; Right :inSet)returnSetrenamesDifference;procedureSymmetric_Difference (Target :inoutSet; Source :inSet);functionSymmetric_Difference (Left :inSet; Right :inSet)returnSet;function"xor" (Left :inSet; Right :inSet)returnSetrenamesSymmetric_Difference;functionOverlap (Left :inSet; Right :inSet)returnBoolean;functionIs_Subset (Subset :inSet; Of_Set :inSet)returnBoolean;functionFirst (Container :inSet)returnCursor;functionFirst_Element (Container :inSet)returnElement_Type;functionLast (Container :inSet)returnCursor;functionLast_Element (Container :inSet)returnElement_Type;functionNext (Position :inCursor)returnCursor;procedureNext (Position :inoutCursor);functionPrevious (Position :inCursor)returnCursor;procedurePrevious (Position :inoutCursor);functionFind (Container :inSet; Item :inElement_Type)returnCursor;functionFloor (Container :inSet; Item :inElement_Type)returnCursor;functionCeiling (Container :inSet; Item :inElement_Type)returnCursor;functionContains (Container :inSet; Item :inElement_Type)returnBoolean;functionHas_Element (Position :inCursor)returnBoolean;function"<" (Left :inCursor; Right :inCursor)returnBoolean;function">" (Left :inCursor; Right :inCursor)returnBoolean;function"<" (Left :inCursor; Right :inElement_Type)returnBoolean;function">" (Left :inCursor; Right :inElement_Type)returnBoolean;function"<" (Left :inElement_Type; Right :inCursor)returnBoolean;function">" (Left :inElement_Type; Right :inCursor)returnBoolean;procedureIterate (Container :inSet; Process :notnullaccessprocedure(Position :inCursor));procedureReverse_Iterate (Container :inSet; Process :notnullaccessprocedure(Position :inCursor));generictypeKey_Type (<>)isprivate;withfunctionKey (Element :inElement_Type)returnKey_Type;withfunction"<" (Left :inKey_Type; Right :inKey_Type)returnBooleanis<>;packageGeneric_KeysisfunctionEquivalent_Keys (Left :inKey_Type; Right :inKey_Type)returnBoolean;functionKey (Position :inCursor)returnKey_Type;functionElement (Container :inSet; Key :inKey_Type)returnElement_Type;procedureReplace (Container :inoutSet; Key :inKey_Type; New_Item :inElement_Type);procedureExclude (Container :inoutSet; Key :inKey_Type);procedureDelete (Container :inoutSet; Key :inKey_Type);functionFind (Container :inSet; Key :inKey_Type)returnCursor;functionFloor (Container :inSet; Key :inKey_Type)returnCursor;functionCeiling (Container :inSet; Key :inKey_Type)returnCursor;functionContains (Container :inSet; Key :inKey_Type)returnBoolean;procedureUpdate_Element_Preserving_Key (Container :inoutSet; Position :inCursor; Process :notnullaccessprocedure(Element :inoutElement_Type));endGeneric_Keys;privatetypeSetistaggednullrecord; Empty_Set :constantSet := (nullrecord);typeCursorisnullrecord; No_Element :constantCursor := (nullrecord);endAda.Containers.Ordered_Sets;
外部示例
[编辑源代码]- 搜索 示例 of
Ada.Containers.Ordered_Setsin: Rosetta Code, GitHub (gists), any Alire crate or this Wikibook. - 搜索 帖子 related to
Ada.Containers.Ordered_Setsin: Stack Overflow, comp.lang.ada or any Ada related page.
FSF GNAT
- 规范: a-coorse.ads
- 主体: a-coorse.adb
drake
