我有一个关于 std::string 类的简单问题。
为什么不为原语重载 + 以便可以轻松连接字符串?
例如-如果我有双
double d = 1000.5:
还有一个字符串
std::string s = "my value is ";
我想以一种简单的方式将这个字符串与 double 连接起来
s = s + d;
结果应该是:
my value is 1000.5
这很容易用 Java 等语言实现
public static void main (String[] args) {
double d = 1000.5;
String s = "my Value is ";
s += d;
System.out.println(s);
}
相反,这是一个如何在 C++ 中执行此操作的示例
int main() {
double d = 1000.5;
std::ostringstream strs;
strs << d;
std::string s = "My value is " + strs.str();
cout << s;
return 0;
}
它并不复杂,但如果允许以“java 方式”进行串联,它会简单得多。
最佳答案
您可以轻松实现它。
template <typename T, typename = typename std::enable_if<std::is_arithmetic<T>::value>::type>
std::string& operator += (std::string& string, const T& number)
{
return string += std::to_string(number);
}
关于c++ - 原语的二元运算符重载字符串类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24232506/