2011-09-29 199 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*等)

如果你有一個自定義類型,那麼你就需要爲這些運營商提供的。