Spec-Zone.ru › C++

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

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

См. также

begincbegin
возвращает итератор, указывающий на начало
(открытая функция-член)
endcend
возвращает итератор, указывающий на конец
(открытая функция-член)
rbegincrbegin
возвращает обратный итератор, указывающий на начало
(открытая функция-член)
rendcrend
возвращает обратный итератор, указывающий на конец
(открытая функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/container/hive/get_iterator

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API