Ada 编程/库/Ada.Containers.Bounded_Doubly_Linked_Lists
外观
此语言特性在Ada 2012中引入。
Ada.Containers.Bounded_Doubly_Linked_Lists 是 预定义语言环境 自 Ada 2012 以来的一个单元。
-- Standard Ada library specification -- 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 -- -------------------------------------------------------------------------withAda.Iterator_Interfaces;generictypeElement_Typeisprivate;withfunction"=" (Left, Right : Element_Type)returnBooleanis<>;packageAda.Containers.Bounded_Doubly_Linked_ListsispragmaPure(Bounded_Doubly_Linked_Lists);pragmaRemote_Types(Bounded_Doubly_Linked_Lists);typeList (Capacity : Count_Type)istaggedprivatewithConstant_Indexing => Constant_Reference, Variable_Indexing => Reference, Default_Iterator => Iterate, Iterator_Element => Element_Type;pragmaPreelaborable_Initialization(List);typeCursorisprivate;pragmaPreelaborable_Initialization(Cursor); Empty_List :constantList; No_Element :constantCursor;functionHas_Element (Position : Cursor)returnBoolean;packageList_Iterator_InterfacesisnewAda.Iterator_Interfaces (Cursor, Has_Element);function"=" (Left, Right : List)returnBoolean;functionLength (Container : List)returnCount_Type;functionIs_Empty (Container : List)returnBoolean;procedureClear (Container :inoutList);functionElement (Position : Cursor)returnElement_Type;procedureReplace_Element (Container :inoutList; Position :inCursor; New_Item :inElement_Type);procedureQuery_Element (Position :inCursor; Process :notnullaccessprocedure(Element :inElement_Type));procedureUpdate_Element (Container :inoutList; Position :inCursor; Process :notnullaccessprocedure(Element :inoutElement_Type));typeConstant_Reference_Type (Element :notnullaccessconstantElement_Type)isprivatewithImplicit_Dereference => Element;typeReference_Type (Element :notnullaccessElement_Type)isprivatewithImplicit_Dereference => Element;functionConstant_Reference (Container :aliasedinList; Position :inCursor)returnConstant_Reference_Type;functionReference (Container :aliasedinoutList; Position :inCursor)returnReference_Type;procedureAssign (Target :inoutList; Source :inList);functionCopy (Source : List; Capacity : Count_Type := 0)returnList;procedureMove (Target :inoutList; Source :inoutList);procedureInsert (Container :inoutList; Before :inCursor; New_Item :inElement_Type; Count :inCount_Type := 1);procedureInsert (Container :inoutList; Before :inCursor; New_Item :inElement_Type; Position :outCursor; Count :inCount_Type := 1);procedureInsert (Container :inoutList; Before :inCursor; Position :outCursor; Count :inCount_Type := 1);procedurePrepend (Container :inoutList; New_Item :inElement_Type; Count :inCount_Type := 1);procedureAppend (Container :inoutList; New_Item :inElement_Type; Count :inCount_Type := 1);procedureDelete (Container :inoutList; Position :inoutCursor; Count :inCount_Type := 1);procedureDelete_First (Container :inoutList; Count :inCount_Type := 1);procedureDelete_Last (Container :inoutList; Count :inCount_Type := 1);procedureReverse_Elements (Container :inoutList);procedureSwap (Container :inoutList; I, J :inCursor);procedureSwap_Links (Container :inoutList; I, J :inCursor);procedureSplice (Target :inoutList; Before :inCursor; Source :inoutList);procedureSplice (Target :inoutList; Before :inCursor; Source :inoutList; Position :inoutCursor);procedureSplice (Container:inoutList; Before :inCursor; Position :inCursor);functionFirst (Container : List)returnCursor;functionFirst_Element (Container : List)returnElement_Type;functionLast (Container : List)returnCursor;functionLast_Element (Container : List)returnElement_Type;functionNext (Position : Cursor)returnCursor;functionPrevious (Position : Cursor)returnCursor;procedureNext (Position :inoutCursor);procedurePrevious (Position :inoutCursor);functionFind (Container : List; Item : Element_Type; Position : Cursor := No_Element)returnCursor;functionReverse_Find (Container : List; Item : Element_Type; Position : Cursor := No_Element)returnCursor;functionContains (Container : List; Item : Element_Type)returnBoolean;procedureIterate (Container :inList; Process :notnullaccessprocedure(Position :inCursor));procedureReverse_Iterate (Container :inList; Process :notnullaccessprocedure(Position :inCursor));functionIterate (Container :inList)returnList_Iterator_Interfaces.Reversible_Iterator'Class;functionIterate (Container :inList; Start :inCursor)returnList_Iterator_Interfaces.Reversible_Iterator'Class;genericwithfunction"<" (Left, Right : Element_Type)returnBooleanis<>;packageGeneric_SortingisfunctionIs_Sorted (Container : List)returnBoolean;procedureSort (Container :inoutList);procedureMerge (Target :inoutList; Source :inoutList);endGeneric_Sorting;private-- not specified by the languageendAda.Containers.Bounded_Doubly_Linked_Lists;
外部示例
[编辑源代码]- 在以下网站搜索 示例: Rosetta Code, GitHub (gists), 任何 Alire 包 或 此华夏公益教科书。
- 在以下网站搜索 帖子: Stack Overflow, comp.lang.ada 或 任何与 Ada 相关的页面。
FSF GNAT
- 规范: a-cbdlli.ads
- 主体: a-cbdlli.adb
