You*_*008 7 c++ string-view guideline-support-library
我正在解析二进制网络数据,我希望使该过程尽可能减少分配。但现在我意识到有两个非常相似的概念可能都足够适合我的情况,它们是std::basic_string_view<T>和std::span<T>。
所以我想知道。这两者之间有什么区别?使用其中一种比另一种有什么优势?一个明显的区别是可用性,std::basic_string_viewC++17 中已存在,而std::spanC++20 中已存在(但您可以使用“指南支持库”中的旧标准)。但还有别的事吗?应该如此,否则它们就不会同时进入标准。
string_view旨在与文本数据一起使用。span旨在与任意对象数组一起使用。虽然两者都不完全适合二进制数据,string_view但显然不适用。