題目:
從billionaires中找到中國38~45歲 的億萬富翁!
要求:
1、讀取2進製檔案billion.bin,形成乙個vector的容器內容。
2、使用for_each遍歷vector容器內所有元素,呼叫find_billion(「china」, 38, 45),列印出滿足要求的所有富翁。
3、上述find_billion是乙個函式物件。
資料結構:
billion.bin是struct billion的2進製儲存,billion的定義為:
struct billion ;
檔案:
billion.bin
對二進位制檔案的讀寫主要用istream類的成員函式read和write來實現。
這兩個成員函式的原型為:
istream& read(char *buffer,int len);
ostream& write(const char * buffer,int len);
思路:
1.讀取二進位制檔案,按struct大小取出,存入vector容器中
2.編寫find_billion()函式
3.將find_billion()作為函式物件傳入for_each中
#include#include#include#include#include#includeusing namespace std;
struct billion ;
ostream& operator<<(ostream& os,billion &b)
void operator()(billion b);
in.close();
//驗證vector中內容:
//copy(v.begin(),v.end(),ostream_iterator(cout,"\n"));
/*vector::iterator it=v.begin();
for(;it!=v.end();it++){
cout<<*it《輸出:
174 liu qiangdong $7.7 b 43 e-commerce china
261 yan zhi $5.7 b 44 real estate china
427 xu bo $4.1 b 39 mobile games china
441 jason jiang $4 b 44 advertising china
474 jia yueting $3.8 b 44 online video china
603 nie tengyun $3.2 b 41 logistics china
814 wang xing $2.5 b 44 e-commerce china
939 fang wei $2.2 b 44 steel c
問題:
copy(v.begin(),v.end(),ostream_iterator(cout,"\n"));
error:'ostream_iterator' was not declared in this scope
-->沒要包含所需的標頭檔案
解決:在標頭檔案中加入 iterator 這個標頭檔案 --> #includecopy函式需要標頭檔案:iterator algorithm
C 物件導向程式設計上機練習一(函式過載)
time limit 1000ms memory limit 65536kb submit statistic problem description 利用陣列和函式過載求5個數最大值 分別考慮整數 單精度 長整數的情況 input 分別輸入5個int型整數 5個float 型實數 5個long型正...
c 程式設計練習 037 函式物件的過濾器
北大程式設計與演算法 三 測驗題彙總 2020春季 程式填空輸出指定結果 include include using namespace std struct a a int n v n bool operator const a a const 在此處補充你的 template void prin...
物件導向程式設計練習
1 程式設計題 設計乙個使用者類user,類中的變數有使用者名稱 密碼和記錄使用者數量的變數,定義3個構造方法 無參的 為使用者名稱賦值的 為使用者名稱和密碼賦值的,還有獲取和設定密碼的方法和返回類資訊的方法。public class user 定義無參方法 2 程式設計題 設計一副牌poker的外...