這是一個面試問題。爲了在C++代碼中使用std :: set,需要重寫哪個運算符?
參考示例代碼,需要其中的運營商之一,以重寫使用
std::set<Value>
#include<iostream>
class Value
{
std::string s_val;
int i_val;
public:
Value(std::string s, int i): s_val(s) , i_val(i){}
};
// EOF
/*
a operator !=
b operator >
c operator <=
d operator >=
e operator <
*/
其實,我不明白爲什麼運營商需要在這裏被覆蓋。 「set」不允許重複的元素,可能operator!=需要被覆蓋?
覆蓋'operator!='(或'operator ==')將難以維護複雜性保證,您不覺得嗎?仍然我發現這個問題有點難過... – 6502
-1,因爲你似乎沒有試圖找出什麼是一個std ::設置和做什麼。 – Walter
[std :: set用戶定義類型,如何確保沒有重複]的可能重複(http://stackoverflow.com/questions/1114856/stdset-with-user-defined-type-how-to-ensure-no -duplicates) –