//课后练习10.29
#include<iostream>
#include<string>
#include<vector>
#include<iterator>
#include<fstream>
using namespace std;
int main(void)
{
ifstream in1("file1.txt");
ifstream in2("file2.txt");
istream_iterator<string> in_iterator(in1),in_iterator1(in2), eof;
vector<string> vec1(in_iterator, eof);
vector<string> vec2;
while (in_iterator1 != eof)
{
vec2.push_back(*in_iterator1++);
}
ostream_iterator<string> out_iterator(cout, " ");
for (auto ss : vec1)
out_iterator = ss;
cout << endl;
for (auto ss : vec2)
out_iterator = ss;
cout << endl;
return 0;
}
/****************************************************************/
//练习10.30
#include<iostream>
#include<numeric>
#include<algorithm>
#include<vector>
#include<iterator>
using namespace std;
int main(int argc, char * argv[])
{
istream_iterator<int> in_iter(cin);
istream_iterator<int> eof;
vector<int> vec1(in_iter, eof);
sort(vec1.begin(), vec1.end());
ostream_iterator<int> out_iter(cout, " ");
copy(vec1.begin(), vec1.end(), out_iter);
cout << endl;
}
/********************************************************************///练习10.31
#include<iostream>
#include<numeric>
#include<algorithm>
#include<vector>
#include<iterator>
using namespace std;
int main(int argc, char * argv[])
{
istream_iterator<int> in_iter(cin);
istream_iterator<int> eof;
vector<int> vec1(in_iter, eof);
sort(vec1.begin(), vec1.end());
ostream_iterator<int> out_iter(cout, " ");
unique_copy(vec1.begin(), vec1.end(), out_iter);
cout << endl;
}
/******************************************************************///练习10.32
#include<iostream>
#include<algorithm>
#include<numeric>
#include<iterator>
#include<vector>
#include<string>
#include"10.32.h"
using namespace std;
bool compareIsbn(Sales_item & s1, Sales_item & s2)
{
return s1.isbn < s2.isbn;
}
int main(void)
{
vector<Sales_item> vec;
istream_iterator<Sales_item> in_iter(cin), eof;
while (in_iter != eof)
{
vec.push_back(*in_iter++);
}
sort(vec.begin(), vec.end(), compareIsbn);
auto vec1 = vec.begin();
while (vec1 != vec.end())
{
auto opps = *vec1;
auto r = find_if(vec1 + 1, vec.end(),
[opps](const Sales_item & opps1){return opps != opps1; });
cout<< accumulate(vec1 + 1, r, opps) << endl;
vec1 = r;
}
return 0;
}
/*****************************************************************/