-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoverload.cc
41 lines (36 loc) · 1.06 KB
/
overload.cc
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
#include <complex>
#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
complex<double> avg_arr(const vector<complex<double>> a) {
complex<double> sum(0.0, 0.0), elem;
// Get a non-const vector we can iterate.
vector<complex<double>> b = a;
for (vector<complex<double>>::iterator it = b.begin(); it != b.end(); it++) {
sum += *it;
}
// Doesn't work : return (sum/b.size()).
// complex /= is defined, not /.
sum /= b.size();
return (sum);
}
double avg_arr(const vector<double> a) {
double sum = 0.0;
// Get a non-const vector we can iterate.
vector<double> b = a;
for (vector<double>::iterator it = b.begin(); it != b.end(); it++) {
sum += *it;
}
return (sum / a.size());
}
int main(void) {
const vector<double> doublearr = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0};
cout << avg_arr(doublearr) << endl;
vector<complex<double>> complexarr;
for (int i = 0; i < doublearr.size(); i++) {
complexarr.push_back(complex<double>(doublearr[i], doublearr[i]));
}
cout << avg_arr(complexarr) << endl;
exit(EXIT_SUCCESS);
}