-
Notifications
You must be signed in to change notification settings - Fork 0
/
回调.cpp
57 lines (49 loc) · 1.36 KB
/
回调.cpp
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <stdlib.h> // Need random(), srandom()
#include <ctime> // Need time()
#include <vector> // Need vector
#include <algorithm> // Need for_each()
using namespace std;
#define VSIZE 24 // Size of vector
std::vector<long> v(VSIZE); // Vector object
// Function prototypes
void initialize(long &ri);
void show(const long &ri);
bool isMinus(const long &ri); // Predicate function
//在linux下stdlib.h包含srandom 和random ,但在VC下stdlib.h包含的是srand和rand,所以应该改过来
int main()
{
srand(time(NULL)); // Seed random generator
std::for_each(v.begin(), v.end(), initialize);//调用普通函数
cout << "Vector of signed long integers" << endl;
std::for_each(v.begin(), v.end(), show);
cout << endl;
// Use predicate function to count negative values
//
int count = 0;
vector<long>::iterator p;
p = find_if(v.begin(), v.end(), isMinus);//调用断言函数
while (p != v.end()) {
count++;
p = find_if(p + 1, v.end(), isMinus);
}
cout << "Number of values: " << VSIZE << endl;
cout << "Negative values : " << count << endl;
return 0;
}
// Set ri to a signed integer value
void initialize(long &ri)
{
ri = (rand() - (RAND_MAX / 2));
// ri = random();
}
// Display value of ri
void show(const long &ri)
{
cout << ri << " ";
}
// Returns true if ri is less than 0
bool isMinus(const long &ri)
{
return (ri < 0);
}