--- title: "Histgram" --- {{< callout type="info">}} Header: `histogram.h` From: `20.9.0` {{< /callout >}} ## Member types `const_iterator` The iterator used to traverse the histogram data. `key_type` The index type for the histogram. `count_type` The type used for the histogram counter. `value_type` The type returned from the histogram. ## Constants `Max_Size` The maximum number of elements in the histogram. ## histogram ```cpp template class histogram ``` **Description** A histogram where the start index of the keys is defined in the constructor. ## Member functions ```cpp histogram() ``` **Description** Default constructor. --- ```cpp template histogram(TIterator first, TIterator last) ``` **Description** Construct from an iterator range. --- ## histogram ```cpp template class histogram ``` **Description** A histogram where the start index of the keys is defined as a template parameter. ## Member functions ```cpp histogram() ``` **Description** Default constructor. --- ```cpp template histogram(TIterator first, TIterator last) ``` **Description** Construct from an iterator range. --- ```cpp histogram(const histogram& other) ``` **Description** Copy constructor. --- ```cpp histogram(histogram&& other) ``` **Description** Move constructor. --- ```cpp histogram& operator =(const histogram& rhs) ``` **Description** Assignment operator. --- ```cpp histogram& operator =(histogram&& rhs) ``` **Description** Move assignment operator. --- ```cpp void add(key_type key) ``` **Description** Increment the count for the key. --- ```cpp template void add(TIterator first, TIterator last) ``` **Description** Increment the counts for the keys from an iterator range. --- ```cpp void operator ()(key_type key) ``` **Description** Increment the count for the key. --- ```cpp template void operator ()(TIterator first, TIterator last) ``` **Description** Increment the counts for the keys from an iterator range. --- ```cpp value_type operator [](key_type key) const ``` **Description** Get the count for a key. --- ```cpp const_iterator begin() const const_iterator cbegin() const ``` **Description** Get the iterator to the first histogram entry. --- ```cpp const_iterator end() const const_iterator cend() const ``` **Description** Get the iterator to the last + 1 histogram entry. --- ```cpp void clear() ``` **Description** Clear the counts to zero. --- ```cpp ETL_CONSTEXPR size_t size() const ``` Get the number of items in the histogram. **Description** Always equal to max_size(). --- ```cpp ETL_CONSTEXPR size_t max_size() const ``` **Description** Get the number of items in the histogram. --- ```cpp size_t count() const ``` **Description** Get the total of all the counts. ## sparse_histogram ```cpp template class sparse_histogram ``` **Description** A histogram where the keys are sparse or non-integral types. ## Types `const_iterator` The iterator used to traverse the histogram data. `key_type` The index type for the histogram. `count_type` The type used for the histogram counter. `value_type` The type returned from the histogram. A pair containing the key and count. ## Constants `Max_Size` The maximum number of elements in the histogram. ## Member functions ```cpp sparse_histogram() ``` **Description** Default constructor. --- ```cpp template sparse_histogram(TIterator first, TIterator last) ``` **Description** Construct from an iterator range. --- ```cpp sparse_histogram(const sparse_histogram& other) ``` **Description** Copy constructor. --- ```cpp sparse_histogram(sparse_histogram&& other) ``` **Description** Move constructor. --- ```cpp sparse_histogram& operator =(const sparse_histogram& rhs) ``` **Description** Assignment operator. --- ```cpp sparse_histogram& operator =(sparse_histogram&& rhs) ``` **Description** Move assignment operator. --- ```cpp void add(key_type key) ``` **Description** Increment the count for the key. --- ```cpp template void add(TIterator first, TIterator last) ``` **Description** Increment the counts for the keys from an iterator range. --- ```cpp void operator ()(key_type key) ``` **Description** Increment the count for the key. --- ```cpp template void operator ()(TIterator first, TIterator last) ``` **Description** Increment the counts for the keys from an iterator range. --- ```cpp const value_type& operator [](key_type key) const ``` **Description** Get the count for a key. --- ```cpp const_iterator begin() const const_iterator cbegin() const ``` **Description** Get the iterator to the first histogram entry. --- ```cpp const_iterator end() const const_iterator cend() const ``` **Description** Get the iterator to the last + 1 histogram entry. --- ```cpp void clear() ``` **Description** Clear the counts to zero. --- ```cpp ETL_CONSTEXPR size_t size() const ``` **Description** Get the number of items in the histogram. --- ```cpp ETL_CONSTEXPR size_t max_size() const ``` **Description** Get the number of items in the histogram. --- ```cpp size_t count() const ``` **Description** Get the total of all the counts.