当前位置 : 主页 > 网络编程 > 其它编程 >

来自具有大小的char*缓冲区的双向迭代器

来源:互联网 收集:自由互联 发布时间:2023-07-02
我似乎无法找到一个简单的解决方案,即如何从char*bufferwithdefined获取双向迭代器bufferSize。我不想将缓 我似乎无法找到一个简单的解决方案,即如何从char *bufferwith defined获取双向迭代器
我似乎无法找到一个简单的解决方案,即如何从char*bufferwithdefined获取双向迭代器bufferSize。我不想将缓

我似乎无法找到一个简单的解决方案,即如何从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】
    上一篇:1.html学习历程
    下一篇:没有了
    网友评论