容器需要提供一种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)