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) |
Если 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
См. также
| возвращает итератор, указывающий на начало (открытая функция-член) |
|
| возвращает итератор, указывающий на конец (открытая функция-член) |
|
| возвращает обратный итератор, указывающий на начало (открытая функция-член) |
|
| возвращает обратный итератор, указывающий на конец (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/container/hive/get_iterator