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++,像Python这样的语言,它很容易连接,我很快就想用函数连接不同的变量,以避免使用字符串或StrugSuff._C++_String_Concatenation_Stringstream - Fatal编程技术网

在c++;:使用函数还是字符串流? 我最近学习C++,像Python这样的语言,它很容易连接,我很快就想用函数连接不同的变量,以避免使用字符串或StrugSuff.

在c++;:使用函数还是字符串流? 我最近学习C++,像Python这样的语言,它很容易连接,我很快就想用函数连接不同的变量,以避免使用字符串或StrugSuff.,c++,string,concatenation,stringstream,C++,String,Concatenation,Stringstream,所以我设法创建了这个函数:(C++17) #包括 模板 字符串连接(类型和参数) { std::stringstreams{}; ((s)为什么不能使用简单的std::string?auto s=s1+s2+s3+“xyz”;应该有效为什么要这样做?为什么要连接不同类型的字符串表示形式?记住这非常昂贵-许多堆分配…连接不同的变量意味着什么当它不是字符串时?为什么要避免字符串?如果您想要python的str.format或%-插值,请查看库。这取决于您尝试连接的内容。如果您只是将字符串连接到字符串

所以我设法创建了这个函数:(C++17)

#包括
模板
字符串连接(类型和参数)
{
std::stringstreams{};

((s)为什么不能使用简单的std::string?auto s=s1+s2+s3+“xyz”;应该有效为什么要这样做?为什么要连接不同类型的字符串表示形式?记住这非常昂贵-许多堆分配…连接不同的变量意味着什么当它不是字符串时?为什么要避免字符串?如果您想要python的
str.format
或%-插值,请查看库。这取决于您尝试连接的内容。如果您只是将字符串连接到字符串,或字符和字符串,则
std::string
提供了此功能不需要蒸汽。如果您要添加基本的数字类型(
int
float
,等等)然后-自C++11以来,有一个
std::to_string
可以生成给定值的字符串。如果要连接用户定义的类型,则需要指定将它们连接到字符串的方法。为什么不能使用简单的std::string?auto s=s1+s2+s3+xyz;应该工作为什么要这样做?为什么要连接不同类型的字符串表示形式?记住这是非常昂贵的-许多堆分配…连接不同的变量意味着什么当它不是字符串时?为什么要避免字符串?如果您想要python的
str.format
或%-插值,请查看库。这取决于您尝试连接的内容。如果您只是将字符串连接到字符串,或字符和字符串,则
std::string
提供了此功能不需要蒸汽。如果您要添加基本的数字类型(
int
float
,等等),那么-从C++11开始-有
std::to_string
,它会生成给定值的字符串。如果您希望连接用户定义的类型,那么您需要指定一种将它们连接到字符串的方法。
#include <sstream>

template<typename... Types>
std::string concatenate(Types&&... args)
{
    std::stringstream s{};
    ((s << args), ...);
    return s.str();
}