C++ 如何在C+中输入std::string_视图+;?
这是输入(有点)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
#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视图
没有自己的存储—它是由其他对象提供的存储视图。但是用户输入需要存储在某个地方