本文共计1144个字,预计阅读时长4.6分钟。
bool equal_to<T>` //等于 * `template<class T>bool not_equal_to<T>` //不等于 * `template<class T>bool greater<T>` //大于 * `template<class T>bool greater_equal<T>` //大于等于 * `template<class T>bool less<T>` //小于 * `template<class T>bool less_equal<T>` //小于等于 **示例:** ```C++ #include <functional> #include <vector> #include <algorithm> class MyCompare { public: bool operator()(int v1,int v2) { return v1 >v2; } }; void test01() { vector<int>v; v.push_back(10); v.push_back(30); v.push_back(50); v.push_back(40); v.push_back(20); for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout <<*it <<" "; } cout <bool logical_and<T>` //逻辑与 * `template<class T>bool logical_or<T>` //逻辑或 * `template<class T>bool logical_not<T>` //逻辑非 **示例:** ```C++ #include <vector> #include <functional> #include <algorithm> void test01() { vector<bool>v; v.push_back(true); v.push_back(false); v.push_back(true); v.push_back(false); for (vector<bool>::iterator it = v.begin();it!= v.end();it++) { cout <<*it <<" "; } cout <v2; v2.resize(v.size()); transform(v.begin(), v.end(), v2.begin(), logical_not<bool>()); for (vector<bool>::iterator it = v2.begin(); it != v2.end(); it++) { cout <<*it <<" "; } cout <v; for (int i = 0; i <10; i++) { v.push_back(i); } //遍历算法 for_each(v.begin(), v.end(), print01); cout <v; for (int i = 0; i <10; i++) { v.push_back(i + 1); } //查找容器中是否有 5 这个元素 vector<int>::iterator it = find(v.begin(), v.end(), 5); if (it == v.end()) { cout <<"没有找到!" <v; //创建数据 Person p1("aaa", 10); Person p2("bbb", 20); Person p3("ccc", 30); Person p4("ddd", 40); v.push_back(p1); v.push_back(p2); v.push_back(p3); v.push_back(p4); vector<Person>::iterator it = find(v.begin(), v.end(), p2); if (it == v.end()) { cout <<"没有找到!" <5; } }; void test01() { vector<int>v; for (int i = 0; i <10; i++) { v.push_back(i + 1); } vector<int>::iterator it = find_if(v.begin(), v.end(), GreaterFive()); if (it == v.end()) { cout <<"没有找到!" <20; } }; void test02() { vector<Person>v; //创建数据 Person p1("aaa", 10); Person p2("bbb", 20); Person p3("ccc", 30); Person p4("ddd", 40); v.push_back(p1); v.push_back(p2); v.push_back(p3); v.push_back(p4); vector<Person>::iterator it = find_if(v.begin(), v.end(), Greater20()); if (it == v.end()) { cout <<"没有找到!" <v; v.push_back(1); v.push_back(2); v.push_back(5); v.push_back(2); v.push_back(4); v.push_back(4); v.push_back(3); //查找相邻重复元素 vector<int>::iterator it = adjacent_find(v.begin(), v.end()); if (it == v.end()) { cout <<"找不到!" <v; v.push_back(1); v.push_back(2); v.push_back(4); v.push_back(5); v.push_back(3); v.push_back(4); v.push_back(4); int num = count(v.begin(), v.end(), 4); cout <<"4的个数为: " <v; Person p1("刘备", 35); Person p2("关羽", 35); Person p3("张飞", 35); Person p4("赵云", 30); Person p5("曹操", 25); v.push_back(p1); v.push_back(p2); v.push_back(p3); v.push_back(p4); v.push_back(p5); Person p("诸葛亮",35); int num = count(v.begin(), v.end(), p); cout <<"num = " <v; v.push_back(1); v.push_back(2); v.push_back(4); v.push_back(5); v.push_back(3); v.push_back(4); v.push_back(4); int num = count_if(v.begin(), v.end(), Greater4()); cout <<"大于4的个数为: " <v; Person p1("刘备", 35); Person p2("关羽", 35); Person p3("张飞", 35); Person p4("赵云", 30); Person p5("曹操", 25); v.push_back(p1); v.push_back(p2); v.push_back(p3); v.push_back(p4); v.push_back(p5); int num = count_if(v.begin(), v.end(), AgeLess35()); cout <<"小于35岁的个数:" <v; v.push_back(10); v.push_back(30); v.push_back(50); v.push_back(20); v.push_back(40); //sort默认从小到大排序 sort(v.begin(), v.end()); for_each(v.begin(), v.end(), myPrint); cout <v; for(int i = 0 ; i <10;i++) { v.push_back(i); } for_each(v.begin(), v.end(), myPrint()); cout <v1; vector<int>v2; for (int i = 0; i <10 ; i++) { v1.push_back(i); v2.push_back(i + 1); } vector<int>vtarget; //目标容器需要提前开辟空间 vtarget.resize(v1.size() + v2.size()); //合并 需要两个有序序列 merge(v1.begin(), v1.end(), v2.begin(), v2.end(), vtarget.begin()); for_each(vtarget.begin(), vtarget.end(), myPrint()); cout <v; v.push_back(10); v.push_back(30); v.push_back(50); v.push_back(20); v.push_back(40); cout <<"反转前: " <v1; for (int i = 0; i <10; i++) { v1.push_back(i + 1); } vector<int>v2; v2.resize(v1.size()); copy(v1.begin(), v1.end(), v2.begin()); for_each(v2.begin(), v2.end(), myPrint()); cout <v; v.push_back(20); v.push_back(30); v.push_back(20); v.push_back(40); v.push_back(50); v.push_back(10); v.push_back(20); cout <<"替换前:" <v; v.push_back(20); v.push_back(30); v.push_back(20); v.push_back(40); v.push_back(50); v.push_back(10); v.push_back(20); cout <<"替换前:" <v1; vector<int>v2; for (int i = 0; i <10; i++) { v1.push_back(i); v2.push_back(i+100); } cout <<"交换前: " <v; for (int i = 0; i <= 100; i++) { v.push_back(i); } int total = accumulate(v.begin(), v.end(), 0); cout <<"total = " <v; v.resize(10); //填充 fill(v.begin(), v.end(), 100); for_each(v.begin(), v.end(), myPrint()); cout <v1; vector<int>v2; for (int i = 0; i <10; i++) { v1.push_back(i); v2.push_back(i+5); } vector<int>vTarget; //取两个里面较小的值给目标容器开辟空间 vTarget.resize(min(v1.size(), v2.size())); //返回目标容器的最后一个元素的迭代器地址 vector<int>::iterator itEnd = set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(), vTarget.begin()); for_each(vTarget.begin(), itEnd, myPrint()); cout <v1; vector<int>v2; for (int i = 0; i <10; i++) { v1.push_back(i); v2.push_back(i+5); } vector<int>vTarget; //取两个容器的和给目标容器开辟空间 vTarget.resize(v1.size() + v2.size()); //返回目标容器的最后一个元素的迭代器地址 vector<int>::iterator itEnd = set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), vTarget.begin()); for_each(vTarget.begin(), itEnd, myPrint()); cout <v1; vector<int>v2; for (int i = 0; i <10; i++) { v1.push_back(i); v2.push_back(i+5); } vector<int>vTarget; //取两个里面较大的值给目标容器开辟空间 vTarget.resize( max(v1.size() , v2.size())); //返回目标容器的最后一个元素的迭代器地址 cout <<"v1与v2的差集为: " < 最后于 2023-3-12 被大理寺少卿编辑 ,原因:
请登录您的账号,开始你的旅途
没有帐号?用户注册