10.20
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
bool fuc(string &s)
{
for (auto iter = s.begin(); iter != s.end() ; ++iter)
{
if (iter->size() > 6) //报错 我佛了 不懂
return true;
else
return false;
}
}
int main(int argc, char *argv[])
{
string word;
vector<string> s;
// ifstream in(argv[1]);
// if (!in)
// cerr<< "无法打开文件" <<endl;
while (cin >> word)
s.push_back(word);
auto it = count_if(s.begin(), s.end(), fuc);
cout << it << endl;
return 0;
}
答案
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
#include "make_plural.h"
using namespace std;
inline void output_words(vector<string> &words)
{
for (auto iter = words.begin(); iter != words.end(); ++iter)
cout << *iter << " ";
vout << endl;
}
void biggies(vector<string> &words, vector<string>::size_type sz)
{
output_words(words);
auto bc = count_if(words.begin(), words.end(), [sz] (const stirng &a) {return a.size() >= sz;});
cout << bc<< " " << make_plural(bc, "word", "s") << "of length" << sz << "or longer" << endl;
}
int main(int argc, char *argv[])
{
string word;
vector<string> s;
ifstream in(argv[1]);
if (!in)
{
cerr<< "无法打开文件" <<endl;
exit(1);
}
vector<string> words;
string word;
while (in>>word)
words.push_back(word);
biggies(words, 6);
return 0;
}
10.21
[i] ()mutable ->bool {if(i != 0) {--i; return false:}else return true;};
答案