练习10.29:
#include <iostream>
using namespace std;
#include <vector>
#include <string>
#include <list>
#include <fstream>
#include <algorithm>
#include <functional>
int main()
{
vector<string>v;
ifstream in("story.txt");
istream_iterator<string>ifst (in);
istream_iterator<string>eof;
ostream_iterator<string>out(cout, " ");
string word;
while (ifst != eof)
{
v.push_back(*ifst++);
}
//打印
copy(v.cbegin(), v.cend(), out);
cout << endl;
system("pause");
return 0;
}
练习10.30:
#include <iostream>
using namespace std;
#include <vector>
#include <string>
#include <list>
#include <fstream>
#include <algorithm>
#include <functional>
int main()
{
istream_iterator<int>in_it(cin);
istream_iterator<int>eof;
ostream_iterator<int>out(cout, " ");
vector<int>v(in_it, eof);
sort(v.begin(), v.end());
//打印
copy(v.cbegin(), v.cend(), out);
cout << endl;
system("pause");
return 0;
}
练习10.31:与上题程序一样,把copy变为unique_copy即可
#include <iostream>
using namespace std;
#include <vector>
#include <string>
#include <list>
#include <fstream>
#include <algorithm>
#include <functional>
int main()
{
istream_iterator<int>in_it(cin);
istream_iterator<int>eof;
ostream_iterator<int>out(cout, " ");
vector<int>v(in_it, eof);
sort(v.begin(), v.end());
//打印
unique_copy(v.cbegin(), v.cend(), out);
cout << endl;
system("pause");
return 0;
}
练习10.32:略
练习10.33:
#include <iostream>
using namespace std;
#include <vector>
#include <string>
#include <list>
#include <fstream>
#include <algorithm>
#include <functional>
int main()
{
ifstream in("input.txt");
ofstream fout1("output1.txt", ofstream::out | ofstream::app);
ofstream fout2("output2.txt");
istream_iterator<int>in_it(in);
istream_iterator<int>eof;
//文件写入迭代器流,out1每个值后都有空格
//out2每个值都单独占一行
ostream_iterator<int>out1(fout1, " ");
ostream_iterator<int>out2(fout2, "\n");
while (in_it != eof)
{
//奇数放入output1中
if ((*in_it) % 2 != 0)
{
*out1++ = *in_it++;
}
else
{
//偶数放入output1中
*out2++ = *in_it++;
}
}
system("pause");
return 0;
}
输入文件input.txt内容:
输出文件output1和output2的内容: