我想知道是否可以使用==
比較兩個字符串。我有一個功能,它採用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'可以,但是並不要求存儲在容器中的類型必須是相等的。 –