Namespaces
Variants

std::hive<T,Allocator>::get_iterator

De fr.cppreference.net
 
 
 
 
iterator get_iterator( const_pointer p ) noexcept;
(1) (depuis C++26)
const_iterator get_iterator( const_pointer p ) const noexcept;
(2) (depuis C++26)
1) renvoie un iterator pointant vers le même élément que p.
2) renvoie un const_iterator pointant vers le même élément que p.

Si p ne pointe pas vers un élément de *this, le comportement est indéfini.

Paramètres

p - un pointeur vers l'élément

Valeur de retour

Un itérateur pointant vers le même élément que p.

Complexité

Linéaire en le nombre de blocs actifs dans *this.

Exemple

#include <cassert>
#include <hive>
#include <iostream>

struct Bee { int id{}; };

int main()
{
    std::hive<Bee> bees;

    // populate the hive
    for (int id{}; id != 14; ++id)
        bees.emplace(++id);

    // get the address of the last element
    Bee* bee = &*--bees.end();
    std::cout << "bee->id = " << bee->id << '\n';

    // remove all elements with even id
    std::erase_if(bees, [](const Bee& bee) { return (bee.id % 2) == 0; });

    auto iter = bees.get_iterator(bee);
    assert(iter == --bees.end());
    std::cout << "iter->id = " << iter->id << '\n';
}

Sortie :

bee->id = 13
iter->id = 13

Voir aussi

renvoie un itérateur vers le début
(fonction membre publique)
renvoie un itérateur vers la fin
(fonction membre publique)
renvoie un itérateur inverse vers le début
(fonction membre publique)
renvoie un itérateur inverse vers la fin
(fonction membre publique)