2011-09-29 151 views
0

我想知道是否可以使用==比较两个字符串。我有一个功能,它采用const value &item,因为它的一个value类型,我不能确定什么类型的值,因此如果value类型是string==可能无法正常工作。字符串运算符C++

因此,问题是,解决这个问题最好的办法是什么?我正在考虑超载==运营商,但有没有简单的方法?

+0

向我们展示一些代码。 – avakar

+0

值是某个类型参数还是来自某个库的某种通用类型? – mpartel

+1

“,因为它的值类型,我不能确定什么类型的值是” - 你的意思是你正在编写泛型代码,而'value'是某个容器的'value_type'?如果是这样,那么不能保证可以比较该类型的值是否相等。 'string'可以,但是并不要求存储在容器中的类型必须是相等的。 –

回答

4

在C++ operator ==中为std::string比较了字符串的内容。

2

如果字符串是std::string它已经有一个运算符==定义。它比较字符串的内容。

如果它是一个C字符串(char*),比较是一个指针比较,告诉我们指针是否指向同一个字符串。你不能重载这个,因为它是一个内建的运算符。

1

已经有一堆的std::string实现运营商(对比std::stringconst char*等)

如果你有一个自定义类型,那么你就需要为这些运营商提供的。