tac*_*ach 2 c++ string buffer iterator
我似乎无法找到一个简单的解决方案,即如何从char *bufferwith defined获取双向迭代器bufferSize。我不想将缓冲区复制到std::string(太昂贵),我只想像std_whatever::buffer_wrapper myWrappedBuffer(myBuffer, mySize);然后在函数中使用myWrappedBuffer.begin()和。最简单的方法是什么?我真的不想自己实现迭代器。我知道有,也许有,但我不想为此使用 boost,也不能使用 c++17。myWrappedBuffer.end()<algorithm>boost::string_refstd::string_view
char *b=buffer;
Run Code Online (Sandbox Code Playgroud)
这是您的起始迭代器。
char *e=buffer+buffersize;
Run Code Online (Sandbox Code Playgroud)
这是你的结束迭代器。
简单的花园多样性指针不仅满足双向迭代器的所有要求,而且满足随机访问迭代器的所有要求,并且通常可以在需要任何类型迭代器的任何地方使用,并且它们将像一个迭代器一样工作。所有(写得很好的)基于迭代器的模板都可以很好地使用指针。
您甚至可以将它们提供给std::iterator_traits,并获得有意义的结果。自己尝试一下,看看会发生什么。
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |