Namespaces
Variants

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

От ru.cppreference.net
 
 
 
 
iterator get_iterator( const_pointer p ) noexcept;
(1) (начиная с C++26)
const_iterator get_iterator( const_pointer p ) const noexcept;
(2) (начиная с C++26)
1) возвращает iterator, указывающий на тот же элемент, что и p.
2) возвращает const_iterator, указывающий на тот же элемент, что и p.

Если p не указывает на элемент в *this, поведение не определено.

Параметры

p - указатель на элемент

Возвращаемое значение

Итератор, указывающий на тот же элемент, что и p.

Сложность

Линейная от числа активных блоков в *this.

Пример

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

Вывод:

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

Смотри также

возвращает итератор на начало
(public функция-элемент)
возвращает итератор на конец
(public функция-элемент)
возвращает обратный итератор на начало
(public функция-элемент)
возвращает обратный итератор на конец
(public функция-элемент)