C++-练习-108

张开发
2026/4/9 11:59:26 15 分钟阅读

分享文章

C++-练习-108
题目使用lambda重新编写以下程序使用一个有名称的lambda替换函数outint(),并见函数符替换为两个匿名lambda表达式#include iostream #include list #include iterator #include algorithm using namespace std; templateclass T class TooBig { private: T cutoff; public: TooBig(const T t) : cutoff(t) {} bool operator() ( const T v ) {return v cutoff; } }; void outint(int n) { cout n ; } int main() { TooBigint f100(100); int vals[10] { 50,100,90,180,60,210,415,88,188,201 }; listint yadayada(vals, vals 10); listint etcetera(vals, vals 10); cout Original lists:\n; for_each(yadayada.begin(), yadayada.end(), outint); cout endl; for_each(etcetera.begin(), etcetera.end(), outint); cout endl; yadayada.remove_if(f100); etcetera.remove_if(TooBigint(200)); cout Trimmed lists:\n; for_each(yadayada.begin(), yadayada.end(), outint); cout endl; for_each(etcetera.begin(), etcetera.end(), outint); cout endl; return 0; }源代码#include iostream #include list #include iterator #include algorithm using namespace std; templateclass T class TooBig { private: T cutoff; public: TooBig(const T t) : cutoff(t) {} bool operator() ( const T v ) {return v cutoff; } }; auto Loutint [](int n) { cout n ; }; int main() { TooBigint f100(100); int vals[10] { 50,100,90,180,60,210,415,88,188,201 }; listint yadayada(vals, vals 10); listint etcetera(vals, vals 10); cout Original lists:\n; for_each(yadayada.begin(), yadayada.end(), Loutint); cout endl; for_each(etcetera.begin(), etcetera.end(), Loutint); cout endl; yadayada.remove_if([](int n)-bool { return n 100; }); etcetera.remove_if([](int n)-bool { return n 200; }); cout Trimmed lists:\n; for_each(yadayada.begin(), yadayada.end(), Loutint); cout endl; for_each(etcetera.begin(), etcetera.end(), Loutint); cout endl; return 0; }演示效果如果朋友你感觉文章的内容对你有帮助可以点赞关注文章和专栏以及关注我哈嘿嘿嘿我会定期更新文章的谢谢朋友你的支持哈

更多文章