Namespaces
Variants

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

来自 zh.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) 返回一个 iteratoriteratorp 指向与相同的元素
p.2)const_iterator 返回一个 pconst_iterator

指向与相同的元素 pp.*this如果 p 不指向 *this 中的元素,则行为未定义。

参数

p - 指向元素的指针

返回值

一个迭代器指向与相同的元素 pp.

复杂度

线性于 活跃块 在 *this*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

另见

返回指向起始的迭代器
(公开成员函数)
返回指向末尾的迭代器
(公开成员函数)
返回指向起始的反向迭代器
(公开成员函数)
返回指向末尾的反向迭代器
(公开成员函数)