我似乎无法找到一个简单的解决方案,即如何从char*bufferwithdefined获取双向迭代器bufferSize。我不想将缓 我似乎无法找到一个简单的解决方案,即如何从char *bufferwith defined获取双向迭代器
我似乎无法找到一个简单的解决方案,即如何从char *bufferwith defined获取双向迭代器bufferSize。我不想将缓冲区复制到std::string(太昂贵),我只想像std_whatever::buffer_wrapper myWrappedBuffer(myBuffer, mySize);然后在函数中使用myWrappedBuffer.begin()和。最简单的方法是什么?我真的不想自己实现迭代器。我知道有,也许有,但我不想为此使用 boost,也不能使用 c++17。myWrappedBuffer.end()boost::string_refstd::string_view
回答char *b=buffer;
这是您的起始迭代器。
char *e=buffer+buffersize;
这是你的结束迭代器。
简单的花园多样性指针不仅满足双向迭代器的所有要求,而且满足随机访问迭代器的所有要求,并且通常可以在需要任何类型迭代器的任何地方使用,并且它们将像一个迭代器一样工作。所有(写得很好的)基于迭代器的模板都可以很好地使用指针。
您甚至可以将它们提供给std::iterator_traits,并获得有意义的结果。自己尝试一下,看看会发生什么。
【本文由:湖北阿里云代理 http://www.558idc.com/aliyun.html 复制请保留原URL】