Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <functional>
- template <typename iter, typename Fun>
- void myapply(iter start, iter end, Fun func) {
- std::vector<std::reference_wrapper<typename iter::value_type>> v(start, end);
- auto it = v.begin();
- while (it != v.end()) {
- func(*it);
- it++;
- }
- }
- template<typename Cmp, typename iter>
- std::vector<typename iter::value_type> myfilter2(iter start, iter end, Cmp pred) {
- std::vector<typename iter::value_type> ans;
- std::vector<std::reference_wrapper<typename iter::value_type>> v(start, end);
- for (const auto& it: v) {
- if (pred(it)) {
- ans.insert(ans.end(), it);
- }
- }
- return ans;
- }
- template <typename iter, typename Fun>
- void myapply(iter* start, iter* end, Fun func) {
- std::vector<std::reference_wrapper<iter>> v(start, end);
- auto it = v.begin();
- while (it != v.end()) {
- func(*it);
- it++;
- }
- }
- template<typename Cmp, typename iter>
- std::vector<iter> myfilter2(iter* start, iter* end, Cmp pred) {
- std::vector<iter> ans;
- std::vector<std::reference_wrapper<iter>> v(start, end);
- for (const auto& it: v) {
- if (pred(it)) {
- ans.insert(ans.end(), it);
- }
- }
- return ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement