gray_fox, спасибо за помощь! Файл скомпилировался, но у меня еще возник вопрос: в коде, который приведен ниже, я сделал так:
C++ |
1
| auto binded_isBuzz = bind(isBuzz, _1, d); |
|
Что за возвращаемый тип там должен быть? Почему bool нельзя?
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| #include <iostream>
#include <algorithm>
#include <iterator>
#include <functional>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;
using namespace std::placeholders;
bool isBuzz(int& v, const int& d);
int main() {
srand(time(0));
vector<int> vi(15), vii(15);
for (auto& x : vi) x = rand() % 100;
//putting out unchanged values
for (const auto& x : vi) cout << x << endl;
//setting adapter
const int d = 5;
auto binded_isBuzz = bind(isBuzz, _1, d);
copy_if(vi.begin(), vi.end(), vii.begin(), binded_isBuzz);
//putting out changed values
cout.fill ('_');
for (const auto& x : vii) {
cout.width(5);
cout << x << endl;
}
return 0;
}
bool isBuzz(int& v, const int& d) {
if (v%d == 0)
return true;
else
return false;
} |
|