BloombergLP::bdlc::CompactedArray

This space-efficient, value-semantic array class represents a sequence of TYPE elements. The interface provides functionality similar to a vector<TYPE>, however, modifiable references to individual elements are not provided. This class provides accessors that return iterators that provide non-modifiable access to its elements. The returned iterators, unlike those returned by a vector<TYPE>, are not invalidated upon reallocation.

Synopsis

Declared in <bdlc_compactedarray.h>

template<class TYPE>
class CompactedArray;

Type Aliases

NameDescription
const_iterator Const iterator over elements of this array.
value_type Element type stored by this array.

Member Functions

NameDescription
CompactedArray [constructor]Constructors
~CompactedArray [destructor]Destroy this object
operator= Assign to this array the value of the specified rhs array, and return a reference providing modifiable access to this array.
allocator Return the allocator used by this array to supply memory.
append append overloads
back Return a const reference to the element at the back of this array. The behavior is undefined unless 0 < length(). Note that this method is logically equivalent to: ` operator - 1) `
begin Return an iterator referring to the first element in this array, or the past-the-end iterator if this array is empty. The iterator remains valid as long as this array exists.
capacity Return the number of elements this array can hold, without reallocation, assuming the number of unique elements within this array does not increase.
end Return the past-the-end iterator for this array. The iterator remains valid as long as this array exists, and its length does not decrease.
front Return a const reference to the element at the front of this array. The behavior is undefined unless 0 < length(). Note that this method is logically equivalent to: ` operator `
insert insert overloads
isEmpty Return true if there are no elements in this array, and false otherwise.
isEqual Return true if this and the specified other array have the same value, and false otherwise. Two CompactedArray arrays have the same value if they have the same length, and all corresponding elements (those at the same indices) have the same value.
length Return the number of elements in this array.
operator[] Return a const reference to the element at the specified index in this array. The behavior is undefined unless index < length().
pop_back Remove the last element from this array. The behavior is undefined unless 0 < length().
print Write the value of this array to the specified output stream in a human-readable format, and return a reference to stream. Optionally specify an initial indentation level, whose absolute value is incremented recursively for nested arrays. If level is specified, optionally specify spacesPerLevel, whose absolute value indicates the number of spaces per indentation level for this and all of its nested arrays. If level is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by level). If stream is not valid on entry, this operation has no effect. Note that the format is not fully specified, and can change without notice.
push_back Append to this array an element having the specified value.
remove remove overloads
removeAll Remove all the elements from this array.
replace replace overloads
reserveCapacity reserveCapacity overloads
resize Set the length of this array to the specified numElements. If numElements > length(), the added elements are initialized to TYPE().
swap Efficiently exchange the value of this array with the value of the specified other array. This method provides the no-throw exception-safety guarantee. The behavior is undefined unless this array was created with the same allocator as other.
uniqueElement Return a const reference to the element at the specified index within the sorted sequence of unique element values in this object. The behavior is undefined unless index < uniqueLength(). Note that uniqueElement(index) and operator can return different objects.
uniqueLength Return the number of unique elements in this array.

Non-Member Functions

NameDescription
operator!=Return true if the specified lhs and rhs arrays do not have the same value, and false otherwise. Two CompactedArray arrays do not have the same value if they do not have the same length, or if any corresponding elements (those at the same indices) do not have the same value.
operator==Return true if the specified lhs and rhs arrays have the same value, and false otherwise. Two CompactedArray arrays have the same value if they have the same length, and all corresponding elements (those at the same indices) have the same value.
swapExchange the values of the specified a and b objects. This function provides the no-throw exception-safety guarantee if the two objects were created with the same allocator and the basic guarantee otherwise.