这双向迭代器从char*缓冲区提取,能否改写为长尾?

2026-04-02 14:131阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计408个文字,预计阅读时间需要2分钟。

这双向迭代器从char*缓冲区提取,能否改写为长尾?

我似乎找不到一个简单的解决方案,即如何从`char* buffer`和`int bufferSize`获取双向迭代器。我想要避免使用缓冲区+,但我似乎找不到一个简单的解决方案。

我似乎无法找到一个简单的解决方案,即如何从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;

这是你的结束迭代器。

简单的花园多样性指针不仅满足双向迭代器的所有要求,而且满足随机访问迭代器的所有要求,并且通常可以在需要任何类型迭代器的任何地方使用,并且它们将像一个迭代器一样工作。所有(写得很好的)基于迭代器的模板都可以很好地使用指针。

这双向迭代器从char*缓冲区提取,能否改写为长尾?

您甚至可以将它们提供给std::iterator_traits,并获得有意义的结果。自己尝试一下,看看会发生什么。


    标签:双向迭代

    本文共计408个文字,预计阅读时间需要2分钟。

    这双向迭代器从char*缓冲区提取,能否改写为长尾?

    我似乎找不到一个简单的解决方案,即如何从`char* buffer`和`int bufferSize`获取双向迭代器。我想要避免使用缓冲区+,但我似乎找不到一个简单的解决方案。

    我似乎无法找到一个简单的解决方案,即如何从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;

    这是你的结束迭代器。

    简单的花园多样性指针不仅满足双向迭代器的所有要求,而且满足随机访问迭代器的所有要求,并且通常可以在需要任何类型迭代器的任何地方使用,并且它们将像一个迭代器一样工作。所有(写得很好的)基于迭代器的模板都可以很好地使用指针。

    这双向迭代器从char*缓冲区提取,能否改写为长尾?

    您甚至可以将它们提供给std::iterator_traits,并获得有意义的结果。自己尝试一下,看看会发生什么。


      标签:双向迭代