c++ - 文件到 std::string_view

标签 c++ stl string-view

是否可以将文件直接加载到 std::string_view 中?

直接 = 不从 stringstream 创建代理 std::string。

这会让我的很多代码更快。

最佳答案

如果我明白你在问什么,不。

std::string_view指的是内存区域,但它不拥有该内存。这意味着 std::string_view 要求 存在另一个实际持有 char 的对象它引用的对象。

如果 std::string_view指的是 std::string并且该字符串的生命周期结束,然后是 std::string_view现在实际上是一个悬垂的引用/指针,尝试从中读取字符会导致未定义的行为。

请注意 std::string_view可以引用 char 的连续序列除 std::string 之外的对象,比如一个简单的 char数组或 std::vector<char> , 但不管它指的是什么,所指 的存在时间必须至少与 std::string_view 一样长将被使用。

关于c++ - 文件到 std::string_view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58697247/

相关文章:

c++ - 检查函数指针类型的调用约定

c++ - 头文件中的字符串 View 文字

c++ - 在 Windows 上获取套接字超时值

c++ - boost 用户定义类对象的多数组

c++ - 如何检索无序 map 的碰撞?

c++ - 用于查找到元素集的 id 映射的良好数据结构 (c++)

c++ - 将 std::string 转换为 std::string_view 的时间复杂度

c++ - `unordered_map`中的高效节点extract()+insert()

c++ 模板类继承问题

C++11 前向声明线程、互斥体、计时