[#BloombergLP-ball-AttributeContainerListIterator] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/ball.adoc[ball]::AttributeContainerListIterator :relfileprefix: ../../ :mrdocs: This class provides an STL‐style iterator over a sequence of `AttributeContainer` object addresses. The behavior of the `operator*` method is undefined unless the iterator is at a valid position in the sequence of `AttributeContainer` object addresses (i.e., not the "end") and the referenced element has not been removed since the iterator was constructed. == Synopsis Declared in `<ball_attributecontainerlist.h>` [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=`] | Assign this iterator the value of the specified `rhs` and return a modifiable reference to this iterator. | xref:BloombergLP/ball/AttributeContainerListIterator/operator_star.adoc[`operator*`] | Return the address of the non‐modifiable attribute container at which this iterator is positioned. The behavior is undefined unless this iterator is at a valid position in the list. | xref:BloombergLP/ball/AttributeContainerListIterator/operator_inc-05.adoc[`operator++`] | 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. |=== == Friends [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/ball/AttributeContainerList.adoc[BloombergLP::ball::AttributeContainerList]` | This class provides an in‐core value‐semantic list of `AttributeContainer` object addresses. Attribute container addresses are added to this list using `pushFront()`, which returns an iterator located at the new element. A `AttributeContainerList::iterator` object remains valid until the element referred to by the iterator is removed. Attribute container addresses can be removed using either `remove()`, `removeAll()`, or `removeAllAndRelease()`. 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‐using the memory when new elements are added. The `removeAll()` removes all the elements from the list, but does not release any allocated memory (placing it in the free store). The `removeAllAndRelease()` operation removes all elements and releases all allocated memory. Note that maintaining a free store is important for this component because the expectation is that elements will be both added and removed frequently. | `xref:BloombergLP/ball/operator_eq-019.adoc[BloombergLP::ball::operator==]` | Return `true` if the specified `lhs` and the specified `rhs` iterators have the same value and `false` otherwise. 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.e., the "end" of the list, or the default constructed value). |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/operator_not_eq-0a7f.adoc[`operator!=`] | Return `true` if the specified `lhs` and the specified `rhs` iterators do not have the same value and `false` otherwise. 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. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#