7得票1回答
std::basic_string_view<T>和std::span<T>的区别

我正在解析二进制网络数据,并希望尽可能减少内存分配。但现在我意识到有两个非常相似的概念,它们都可能足够适用于我的情况,那就是std::basic_string_view&lt;T&gt;和std::span&lt;T&gt;。 所以我想知道这两者之间的区别,是否有一种比另一种更优?一个明显的...

7得票1回答
从空的vector<char>构造std::string_view是否合法?

我阅读了一些问题和文档,我猜答案是肯定的,因为 string_view 永远不会触碰指向的内容,但我还是有点困惑这是否合法: std::vector&lt;char&gt; v; std::string_view sv(v.data(), v.size()); 注意: 我知道仅使用 ...

7得票2回答
何时应该使用 std::string / std::string_view 作为参数/返回类型?

介绍 我正在编写一些通信应用程序。在 C++17(没有 Boost)之前,我使用 std::string 及其 const 引用作为 cls1。 C++17 引入了 std::string_view 作为 cls2 的一部分。然而,我并没有清晰的政策来决定何时应该使用 std::strin...

7得票2回答
将字符串隐式转换为string_view

void Foo1(string_view view) { ... } string str = "one two three"; Foo1("one two three"); // Implicitly convert char* to string_view Foo1(str); ...