我想看看直接使用像<,>等運算符比較字符串會發生什麼情況。下面的代碼中的兩種用法令人驚訝地給出了不同的答案。他們是不是完全一樣的說話方式?使用通用比較器進行字符串比較
#include <iostream>
template <class T>
T max(T a, T b)
{
//Usage 1:
if (a > b) return a; else return b;
//Usage 2:
return a > b ? a : b ;
}
int main()
{
std::cout << "max(\"Alladin\", \"Jasmine\") = " << max("Alladin", "Jasmine") << std::endl ;
}
用法1給出「茉莉花」,而用法2給出「阿拉丁」。
使用g ++,兩種情況都給我「Alladin」。 – pushkin
你是如何編譯它的? – pushkin
它看起來像一個編譯器問題。我正在使用http://cpp.sh/進行編譯。當我使用g ++時,它在兩種情況下都會給出「Alladin」。 –