相关疑难解决方法(0)

auto it = vector.begin()结果类型不能转换为const_iterator

容器需要提供一种iterator可隐式转换为a 的类型const_iterator.鉴于此,我尝试使用auto初始化对象vector::begin(),并std::distance在RHS所在的位置使用该结果对象const_iterator.这不起作用.这是一个完整的例子:

#include <cstdlib>
#include <vector>
#include <iterator>
#include <iostream>

typedef std::vector <char> Packet;
typedef std::vector <Packet> Packets;

template <typename Iter> 
Iter next_upto (Iter begin, Iter end, size_t n)
{
    Iter ret = begin;
      for (; n > 0 && ret != end; ++ret, --n)
            ;   
        return ret;
}

Packets::const_iterator Process (Packets::const_iterator begin, Packets::const_iterator end)
{
  Packets::const_iterator ret = begin;
  while (ret != end)
    ++ret;  // do something …
Run Code Online (Sandbox Code Playgroud)

c++ implicit-conversion auto c++11

4
推荐指数
1
解决办法
1456
查看次数

标签 统计

auto ×1

c++ ×1

c++11 ×1

implicit-conversion ×1