我想知道是否可以使用==
比较两个字符串。我有一个功能,它采用const value &item
,因为它的一个value
类型,我不能确定什么类型的值,因此如果value
类型是string
,==
可能无法正常工作。字符串运算符C++
因此,问题是,解决这个问题最好的办法是什么?我正在考虑超载==
运营商,但有没有简单的方法?
我想知道是否可以使用==
比较两个字符串。我有一个功能,它采用const value &item
,因为它的一个value
类型,我不能确定什么类型的值,因此如果value
类型是string
,==
可能无法正常工作。字符串运算符C++
因此,问题是,解决这个问题最好的办法是什么?我正在考虑超载==
运营商,但有没有简单的方法?
在C++ operator ==
中为std::string
比较了字符串的内容。
如果字符串是std::string
它已经有一个运算符==定义。它比较字符串的内容。
如果它是一个C字符串(char*
),比较是一个指针比较,告诉我们指针是否指向同一个字符串。你不能重载这个,因为它是一个内建的运算符。
已经有一堆的std::string
实现运营商(对比std::string
和const char*
等)
如果你有一个自定义类型,那么你就需要为这些运营商提供的。
向我们展示一些代码。 – avakar
值是某个类型参数还是来自某个库的某种通用类型? – mpartel
“,因为它的值类型,我不能确定什么类型的值是” - 你的意思是你正在编写泛型代码,而'value'是某个容器的'value_type'?如果是这样,那么不能保证可以比较该类型的值是否相等。 'string'可以,但是并不要求存储在容器中的类型必须是相等的。 –