EssentialC++第三章习题-创新互联
目录
创新互联专注于企业网络营销推广、网站重做改版、右玉网站定制设计、自适应品牌网站建设、H5页面制作、商城网站开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为右玉等各大城市提供网站开发制作服务。3.1
3.2
3.3
3.4
3.1
C++代码:
//3.1
//读写文本文件,将文件中的每个单字存入map的key值中,value则是该单字在文本文件中出现次数,再定义一份排除字眼组成的set,将某单字放入map之前先确定该单字不在排除字集中。
//文本文件读取完毕后,显示一份单字清单,并显示各单字出现次数
//显示单字之前,允许用户查询某个单字是否存在于文本文件中
#include#include//读写文本文件
#include
程序运行结果:
3.2C++代码:
//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) //终止条件为文件中没有内容继续输入
{
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;
}
程序运行结果:
3.3C++代码:
//3.3
//定义一个map,以家庭姓氏为key,value则是家庭所有小孩的名字。
//此map至少容纳六笔数据
//允许用户根据姓氏来查询,并得以打印map的每一笔数据
#include#include
程序运行结果:
3.4C++代码:
//3.4
//利用istream_iterator从标准输入设备输入连续一连串整数 (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;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
名称栏目:EssentialC++第三章习题-创新互联
标题URL:http://scpingwu.com/article/dosipo.html