【问题标题】:How is insert iterator work in c++插入迭代器如何在 C++ 中工作
【发布时间】:2009-09-13 09:34:14
【问题描述】:

在数据库模板库或其他库中有插入迭代器,有人可以告诉我它是如何工作的吗? 谢谢!

【问题讨论】:

    标签: c++ templates insert-iterator


    【解决方案1】:

    它是一个模板类,所以你应该能够在实现中查找它。

    然而,这个想法是它存储一个迭代器(当前位置)和一个对容器(正在插入的)的引用(指针)。然后它像这样重载 operator=:

    insert_iterator& operator= (typename Container::const_reference value)
    {
        m_iter = m_container->insert(m_iter, value);
        ++m_iter;
        return *this;
    }
    

    因此它需要一个支持 insert 方法和至少一个前向迭代器的容器,并且具有标准的 typedef(const_reference 或 value_type),因此它可以声明其 operator= 的右手类型。

    其他输出迭代器运算符 (*, ++) 只返回 *this。

    【讨论】:

      猜你喜欢
      • 2020-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-20
      • 2020-01-07
      • 2021-09-05
      • 2012-01-05
      相关资源
      最近更新 更多