【问题标题】:Cast object into vector's const_iterator将对象转换为向量的 const_iterator
【发布时间】:2015-07-09 03:37:19
【问题描述】:

您好,我有一个以std::vector<T>::const_iterator 作为参数的函数。

问题是:

如何将 T 类型的独立对象转换为迭代器,以便将其用作参数?

【问题讨论】:

  • T 是可迭代类型吗?如果模板类型名称是所需的迭代器类型,为什么不让你的函数成为模板函数呢?喜欢template <typname FowardIterator> print(ForwardIterator first, ForwardIterator last) {}
  • 没有办法做到这一点(以安全和便携的方式)

标签: c++ vector iterator const-iterator


【解决方案1】:

“如何将 T 类型的独立对象转换为迭代器,以便将其用作参数?”

你不能。 独立对象需要存储在适当的容器中。只有容器提供迭代器的创建。

【讨论】:

  • 所以您建议最好/最简单的方法是将此对象放入容器中,然后创建迭代器?
【解决方案2】:

您不应该尝试将任意对象类型 T 转换为 std::vector::const_iterator

假设对象是std::vector<T>,您可以使用std::vector::cbeginstd::vector::cend 函数来获取std::vector::const_iterator

【讨论】:

    猜你喜欢
    • 2021-06-02
    • 1970-01-01
    • 2014-01-27
    • 2016-07-07
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 1970-01-01
    相关资源
    最近更新 更多