在c++;:使用函数还是字符串流? 我最近学习C++,像Python这样的语言,它很容易连接,我很快就想用函数连接不同的变量,以避免使用字符串或StrugSuff.
所以我设法创建了这个函数:(C++17)在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或%-插值,请查看库。这取决于您尝试连接的内容。如果您只是将字符串连接到字符串
#包括
模板
字符串连接(类型和参数)
{
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();
}