Example demonstrating the use of STL algorithms on DASH global data structures.
#include <iostream>
#include <cstddef>
#include <algorithm>
#include <libdash.h>
template<typename T> void print_array(
const std::string & s,
int main(int argc, char * argv[])
{
const size_t nelem = 30;
for (size_t i = 0; i < arr.size(); ++i) {
arr[i] = nelem - i;
}
}
print_array("init", arr);
}
test_copy(arr);
test_copy_if(arr);
test_all_of(arr);
}
template<typename T>
void print_array(const std::string & s,
{
cout << s << " " << std::flush;
for (auto el : arr) {
T val = el;
cout << val << " ";
}
cout << endl;
}
template<typename T>
{
DASH_LOG_DEBUG("ex.06.std-algo",
"Start std::copy (global to global)");
}
print_array("std::copy", arr2);
}
}
template<typename T>
{
std::copy_if(arr.
begin(), arr.
end(), arr2.begin(),
return r % 2 == 0;
});
}
print_array("std::copy_if", arr2);
}
}
template<typename T>
{
return r > 0;
});
return r > 5;
});
cout << "std::all_of > 0: " << all_gt_0 << endl;
cout << "std::all_of > 5: " << all_gt_5 << endl;
}
}