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

This class provides an STL&hyphen;style iterator over a sequence of `AttributeContainer` object addresses&period; The behavior of the `operator&ast;` method is undefined unless the iterator is at a valid position in the sequence of `AttributeContainer` object addresses (i&period;e&period;, not the &quot;end&quot;) and the referenced element has not been removed since the iterator was constructed&period;

== Synopsis

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

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

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/ball/AttributeContainerListIterator/2constructor-07.adoc[`AttributeContainerListIterator`]         [.small]#[constructor]#
| Constructors
| xref:BloombergLP/ball/AttributeContainerListIterator/operator_assign.adoc[`operator&equals;`] 
| Assign this iterator the value of the specified `rhs` and return a modifiable reference to this iterator&period;
| xref:BloombergLP/ball/AttributeContainerListIterator/operator_star.adoc[`operator&ast;`] 
| Return the address of the non&hyphen;modifiable attribute container at which this iterator is positioned&period; The behavior is undefined unless this iterator is at a valid position in the list&period;
| xref:BloombergLP/ball/AttributeContainerListIterator/operator_inc-05.adoc[`operator&plus;&plus;`] 
| Increment operators
| xref:BloombergLP/ball/AttributeContainerListIterator/valid.adoc[`valid`] 
| Return `true` if this iterator is at a valid position in the sequence of `AttributeContainer` addresses and `false` otherwise&period;
|===


== Friends

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/ball/AttributeContainerList.adoc[BloombergLP::ball::AttributeContainerList]`
| 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;
| `xref:BloombergLP/ball/operator_eq-019.adoc[BloombergLP::ball::operator&equals;&equals;]`
| Return `true` if the specified `lhs` and the specified `rhs` iterators have the same value and `false` otherwise&period; Two iterators have the same value if they refer to the same position in the same list, or if both iterators are at an invalid position in the list (i&period;e&period;, the &quot;end&quot; of the list, or the default constructed value)&period;
|===

== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/ball/operator_not_eq-0a7f.adoc[`operator!&equals;`]
| Return `true` if the specified `lhs` and the specified `rhs` iterators do not have the same value and `false` otherwise&period; Two iterators do not have the same value if they differ in either the list to which they refer or the position in the list object&period;
|===


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