Namespaces
Variants

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

Von de.cppreference.net
 
 
 
 
iterator get_iterator( const_pointer p ) noexcept;
(1) (seit C++26)
const_iterator get_iterator( const_pointer p ) const noexcept;
(2) (seit C++26)
1) gibt einen iterator zurück, der auf dasselbe Element wie p zeigt.
2) gibt einen const_iterator zurück, der auf dasselbe Element wie p zeigt.

Wenn p nicht auf ein Element in *this zeigt, ist das Verhalten undefiniert.

Parameter

p - ein Zeiger auf das Element

Rückgabewert

Ein Iterator, der auf dasselbe Element wie p zeigt.

Komplexität

Linear in der Anzahl der aktiven Blöcke in *this.

Beispiel

#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';
}

Ausgabe:

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

Siehe auch

gibt einen Iterator zum Anfang zurück
(öffentliche Elementfunktion)
gibt einen Iterator zum Ende zurück
(öffentliche Elementfunktion)
gibt einen Rückwärtsiterator zum Anfang zurück
(öffentliche Elementfunktion)
gibt einen Rückwärtsiterator zum Ende zurück
(öffentliche Elementfunktion)