Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在C+中输入std::string_视图+;?_C++_String_C++17_C++20_String View - Fatal编程技术网

C++ 如何在C+中输入std::string_视图+;?

C++ 如何在C+中输入std::string_视图+;?,c++,string,c++17,c++20,string-view,C++,String,C++17,C++20,String View,这是输入(有点)std::string_视图的正常方式变量: #include <bits/stdc++.h> using namespace std; int main() { string str; // Still have to use std::string class // Resulting in stack/heap allocation getline(cin, str); string_view view(str); retur

这是输入(有点)std::string_视图的正常方式变量:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    string str; // Still have to use std::string class // Resulting in stack/heap allocation
    getline(cin, str);

    string_view view(str);

    return 0;
}
#包括
使用名称空间std;
int main()
{
string str;//仍然必须使用std::string class//导致堆栈/堆分配
getline(cin,str);
字符串视图(str);
返回0;
}
我想知道是否有任何方法可以直接输入std::string_视图,而不必使用string类(使用堆分配)

[我肯定知道字符串文本(如“Hello”)在编译时直接存储在二进制代码中,而不会导致任何堆栈/堆分配…因此,是否有任何方法可以直接将字符串文本输入到string_视图中??]

注意:我想要的是用户输入,而不是代码中的硬编码字符串


不,无法将输入读入字符串视图


如果你想输入一个字符串,你必须把它存储在某个地方。它不一定非得是
std::string
,但这是最简单的选项。

不,无法将输入读取到字符串视图中


如果你想输入一个字符串,你必须把它存储在某个地方。它不一定非得是
std::string
,但这是最简单的选择。

不。您不能允许程序在没有额外分配的情况下存储任意数量的输入数据,并且
std::string_view
不会按设计分配任何额外数据。您的代码编写正确。
string\u视图
没有自己的存储—它是由其他对象提供的存储视图。但是用户输入需要存储在某个位置。您不能允许程序在没有额外分配的情况下存储任意数量的输入数据,并且
std::string_view
不会按设计分配任何额外数据。您的代码编写正确。
string\u视图
没有自己的存储—它是由其他对象提供的存储视图。但是用户输入需要存储在某个地方