目錄
3.1
3.2
3.3
3.4
C++代碼:
//3.1
//讀寫文本文件,將文件中的每個單字存入map的key值中,value則是該單字在文本文件中出現(xiàn)次數,再定義一份排除字眼組成的set,將某單字放入map之前先確定該單字不在排除字集中。
//文本文件讀取完畢后,顯示一份單字清單,并顯示各單字出現(xiàn)次數
//顯示單字之前,允許用戶查詢某個單字是否存在于文本文件中
#include#include//讀寫文本文件
#include
程序運行結果:
C++代碼:
//3.2
//讀取文本文件內容并將內容儲存于vector中
//以字符串長度為依據,對vector進行排序
//定義一個function object并傳給sort()進行升序排序 -- 自定義一個fuction object接受兩個參數,當第一字符串的長度小于第二字符串的長度時,返回true
//打印排序后的vector內容
#include#include#include //sort()
#includeusing namespace std;
//fuction object;
class Lessthan
{
public:
bool operator()(const string& s1, const string& s2) //重載運算符' () ',使得Lessthan()即為一個fucion object并可以以Lessthan()的形式傳遞給sort()作為參數
{
return s1.size()< s2.size() ? true : false; //如果s1.size()< s2.size()則返回true反之則返回false
}
};
void display_vector(const vectorivec)
{
vector::const_iterator it = ivec.begin();
while (it != ivec.end())
{
cout<< *it<< " ";
it++;
}
cout<< endl;
}
int main()
{
ifstream in_file("data.txt");
if (!in_file)
{
cerr<< "文件無法打開"<< endl;
return -1;
}
vectorivec;
//將文件中的內容輸入到ivec中
string word;
while (in_file >>word) //終止條件為文件中沒有內容繼續(xù)輸入
{
ivec.push_back(word); // 不知道vector數組的大小,使用push_back()進行插入是最好選擇
}
cout<< "排序前:"<< endl;
display_vector(ivec);
//排序:
sort(ivec.begin(), ivec.end(), Lessthan());
//display:
cout<< "排序后:"<< endl;
display_vector(ivec);
system("pause");
return 0;
}
程序運行結果:
C++代碼:
//3.3
//定義一個map,以家庭姓氏為key,value則是家庭所有小孩的名字。
//此map至少容納六筆數據
//允許用戶根據姓氏來查詢,并得以打印map的每一筆數據
#include#include
程序運行結果:
C++代碼:
//3.4
//利用istream_iterator從標準輸入設備輸入連續(xù)一連串整數 (cin)
//利用ostream_iterator將其中的奇數寫到某個文件,每個數值皆以空格分隔 (out_file1," ")
//再利用ostream_iterator將偶數寫到另一個文件,每個數值單獨放在一行 (out_file2, '\n')
#include#include#include// 使用istream_iterator<>和ostream_iterator<>#include#include
using namespace std;
int main()
{
//容器
vectorivec;
//first;
istream_iteratoris(cin);
//last;
istream_iteratoreof;
//利用copy完成從標準輸入設備輸入
cout<< "輸入整數: "<< endl;
copy(is, eof, back_inserter(ivec));
fstream out_file1("data1.txt");
fstream out_file2("data2.txt");
if (!out_file1 || !out_file2)
{
cout<< "無法打開文件"<< endl;
return 0;
}
vector::const_iterator it = ivec.begin();
ostream_iteratoros1(out_file1, " ");
ostream_iteratoros2(out_file2, "\n");
vectortext1;
vectortext2;
while (it != ivec.end())
{
//奇數
if (*it % 2 != 0)
{
text1.push_back(*it);
}
else
{
text2.push_back(*it);
}
}
//輸入到文件中
copy(text1.begin(), text1.end(), os1);
copy(text2.begin(), text2.end(), os2);
system("pause");
return 0;
}
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
分享題目:EssentialC++第三章習題-創(chuàng)新互聯(lián)
轉載來源:http://www.rwnh.cn/article30/dosipo.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、網站維護、關鍵詞優(yōu)化、品牌網站設計、網站營銷、搜索引擎優(yōu)化
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)