目前我正在學習標準模板庫(STL)。這個程序爲什麼重載()運算符?
在這個程序中,我將一些長的值存儲在關聯容器中,然後根據單元的位置(根據單元位置的數字)對它們進行排序。
代碼:
#include <iostream>
#include <set>
#include <functional>
using namespace std;
class UnitLess
{
public:
bool operator()(long first, long second)
{
long fu = first % 10;
long su = second % 10;
return fu < su;
}
};
typedef set<long, UnitLess> Ctnr;
int main(void)
{
Ctnr store;
store.insert(3124);
store.insert(5236);
store.insert(2347);
store.insert(6415);
store.insert(4548);
store.insert(6415);
for(Ctnr::iterator i = store.begin(); i != store.end(); ++i)
{
cout << *i << endl;
}
}
但我不明白,爲什麼我們的教授重載()運算符?
謝謝。
彷彿重載'()'操作被稱爲在例如在所有它不會出現。也許它會在後面的練習中介紹? – 2010-10-08 08:32:46
是它被稱爲時'的std :: set'試圖插入按排序順序(二進制謂詞) – Benoit 2010-10-08 08:35:03
@格雷格Hewgill運算符()元件被稱爲內部時,它執行store.insert(一些長值); – Searock 2010-10-08 08:35:34