aboutsummaryrefslogtreecommitdiff
path: root/Examples/guile/std_vector/example.h
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/guile/std_vector/example.h')
-rw-r--r--Examples/guile/std_vector/example.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/Examples/guile/std_vector/example.h b/Examples/guile/std_vector/example.h
new file mode 100644
index 000000000..4f0dac70d
--- /dev/null
+++ b/Examples/guile/std_vector/example.h
@@ -0,0 +1,25 @@
+/* File : example.h */
+
+#include <vector>
+#include <algorithm>
+#include <functional>
+#include <numeric>
+
+double average(std::vector<int> v) {
+ return std::accumulate(v.begin(),v.end(),0.0)/v.size();
+}
+
+std::vector<double> half(const std::vector<double>& v) {
+ std::vector<double> w(v);
+ for (unsigned int i=0; i<w.size(); i++)
+ w[i] /= 2.0;
+ return w;
+}
+
+void halve_in_place(std::vector<double>& v) {
+ // would you believe this is the same as the above?
+ std::transform(v.begin(),v.end(),v.begin(),
+ std::bind2nd(std::divides<double>(),2.0));
+}
+
+