[#BloombergLP-ball-AttributeContainerList]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/ball.adoc[ball]::AttributeContainerList
:relfileprefix: ../../
:mrdocs:

This class provides an in&hyphen;core value&hyphen;semantic list of `AttributeContainer` object addresses&period; Attribute container addresses are added to this list using `pushFront()`, which returns an iterator located at the new element&period; A `AttributeContainerList&colon;&colon;iterator` object remains valid until the element referred to by the iterator is removed&period; Attribute container addresses can be removed using either `remove()`, `removeAll()`, or `removeAllAndRelease()`&period; This list object attempts to minimize the number of memory allocations it requires by placing the memory for elements that have been released in a free memory store, and re&hyphen;using the memory when new elements are added&period; The `removeAll()` removes all the elements from the list, but does not release any allocated memory (placing it in the free store)&period; The `removeAllAndRelease()` operation removes all elements and releases all allocated memory&period; Note that maintaining a free store is important for this component because the expectation is that elements will be both added and removed frequently&period;

== Synopsis

Declared in `&lt;ball&lowbar;attributecontainerlist&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class AttributeContainerList;
----

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/ball/AttributeContainerList/allocator_type.adoc[`allocator&lowbar;type`] 
| `allocator&lowbar;type` is an alias for the type of allocator used by this class&period;
| xref:BloombergLP/ball/AttributeContainerList/iterator.adoc[`iterator`] 
| An iterator over this list&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/ball/AttributeContainerList/2constructor-08.adoc[`AttributeContainerList`]         [.small]#[constructor]#
| Constructors
| xref:BloombergLP/ball/AttributeContainerList/2destructor.adoc[`&#126;AttributeContainerList`] [.small]#[destructor]#
| Destroy this object&period;
| xref:BloombergLP/ball/AttributeContainerList/operator_assign.adoc[`operator&equals;`] 
| Assign this container list the value of the specified `rhs` one, and return a reference to this list&period;
| xref:BloombergLP/ball/AttributeContainerList/begin.adoc[`begin`] 
| Return an iterator positioned at the beginning of the list of `AttributeContainer` object addresses represented by this object&period;
| xref:BloombergLP/ball/AttributeContainerList/end.adoc[`end`] 
| Return an iterator positioned one past the final `AttributeContainer` object address in the list of addresses represented by this object&period;
| xref:BloombergLP/ball/AttributeContainerList/get_allocator.adoc[`get&lowbar;allocator`] 
| Return the allocator used by this object to supply memory&period;
| xref:BloombergLP/ball/AttributeContainerList/hasValue.adoc[`hasValue`] 
| Return `true` if the attribute having specified `value` exists in any of the attribute containers referred to by this object, and `false` otherwise&period;
| xref:BloombergLP/ball/AttributeContainerList/numContainers.adoc[`numContainers`] 
| Return the number of attribute container addresses currently in this list&period;
| xref:BloombergLP/ball/AttributeContainerList/print.adoc[`print`] 
| Format this object to the specified output `stream`&period;
| xref:BloombergLP/ball/AttributeContainerList/pushFront.adoc[`pushFront`] 
| Prepend the address of the specified `container` to this list of attribute container addresses, and return an iterator located at the newly added list element&period;
| xref:BloombergLP/ball/AttributeContainerList/remove.adoc[`remove`] 
| Remove the specified `element` from this list&period;
| xref:BloombergLP/ball/AttributeContainerList/removeAll.adoc[`removeAll`] 
| Remove all the elements from this list&period;
| xref:BloombergLP/ball/AttributeContainerList/removeAllAndRelease.adoc[`removeAllAndRelease`] 
| Remove all the elements from this list and deallocate any allocated memory&period;
| xref:BloombergLP/ball/AttributeContainerList/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;AttributeContainerList, UsesBslmaAllocator&gt;`] 
| Declare that this type uses a `bslma` allocator&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/ball/operator_not_eq-05.adoc[`operator!&equals;`]
| Return `true` if the specified `lhs` and `rhs` lists do not have the same value, and `false` otherwise&period;
| xref:BloombergLP/ball/operator_eq-027.adoc[`operator&equals;&equals;`]
| Return `true` if the specified `lhs` and `rhs` lists have the same value, and `false` otherwise&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
