時間限制:
3000 ms | 記憶體限制:
65535 kb
難度:3 描述
現在有很多長方形,每乙個長方形都有乙個編號,這個編號可以重複;還知道這個長方形的寬和長,編號、長、寬都是整數;現在要求按照一下方式排序(預設排序規則都是從小到大);
1.按照編號從小到大排序
2.對於編號相等的長方形,按照長方形的長排序;
3.如果編號和長都相同,按照長方形的寬排序;
4.如果編號、長、寬都相同,就只保留乙個長方形用於排序,刪除多餘的長方形;最後排好序按照指定格式顯示所有的長方形;
輸入第一行有乙個整數 0
輸出 順序輸出每組資料的所有符合條件的長方形的 編號 長 寬
用來練習 操作符過載、以及vector排重 (用set 效能會更優)
//
// main.cpp
// 碼排序
//// created by h@l on 14-6-19.
//#include #include #include using namespace std;
class rectangular
;bool rectangular::operator< (const rectangular &data)const
;bool rectangular::operator== (const rectangular &data)const
istream &operator>> (istream &scin,rectangular &data)
ostream &operator<< (ostream &scout, rectangular&data)
int main()
sort(vdatabuf.begin(),vdatabuf.end(),less());
//刪除重複 unique 返回相鄰相等
vdatabuf.erase(unique(vdatabuf.begin(), vdatabuf.end()),vdatabuf.end());
for (vector::iterator ipos=vdatabuf.begin(); ipos != vdatabuf.end(); ipos++)
}return 0;
}
操作符過載 一
一,運算子過載的基礎知識 1.什麼是運算子過載 所謂的過載,就是重新賦予新的含義。函式的過載是讓乙個已經存在的函式賦予乙個新的含義,使之實現新的功能。因此,乙個函式名就可以用來代表不同功能的函式。運算子的過載其實我們已經使用過了,例如常見的 加法操作就是c 預設過載的,我們可以用加法對整數,單精度,...
操作符過載(一)
目錄2.複數類的實現 3.賦值操作符過載和拷貝建構函式 操作符過載的本質是用特殊形式的函式擴充套件操作符的功能 在進行操作符過載時,必須遵循以下三條規則 全域性函式和成員函式都可以實現對操作符的過載,過載為全域性函式的語法規則為 sign為預定義的操作符,如 lp和rp分別為左運算元和右運算元.ty...
南陽ACM8 一種排序
一種排序 時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在有很多長方形,每乙個長方形都有乙個編號,這個編號可以重複 還知道這個長方形的寬和長,編號 長 寬 都是整數 現在要求按照一下方式排序 預設排序規則都是從小到大 1.按照編號從小到大排序 2.對於編號相等的長方形,按...