上海电子商城网站制作,海丰建设局网站,app开发公司公司,网站设计案例欣赏文章目录 遍历算法1. for_each()代码工程运行结果 2. transform()代码工程运行结果 3. find()代码工程运行结果 遍历算法
1. for_each()
有两种方式#xff1a; 1.普通函数 2.仿函数
代码工程
#define _CRT_SECURE_NO_WARNINGS
#includeiostream
#includevect… 文章目录 遍历算法1. for_each()代码工程运行结果 2. transform()代码工程运行结果 3. find()代码工程运行结果 遍历算法
1. for_each()
有两种方式 1.普通函数 2.仿函数
代码工程
#define _CRT_SECURE_NO_WARNINGS
#includeiostream
#includevector
#includealgorithmusing namespace std;/*普通函数*/
void print01(int val)
{cout val ;
}/*仿函数*/
class print02
{
public:void operator()(int val){cout val ;}
};void test01()
{vectorintv;for (int i 0; i 5; i){v.push_back(i);}/*普通函数*/for_each(v.begin(), v.end(), print01);cout endl;/*仿函数*/for_each(v.begin(), v.end(), print02());cout endl;return;
}int main()
{test01();return 0;
}
运行结果 2. transform()
要注意需要提前给目标容器开辟空间
代码工程
#define _CRT_SECURE_NO_WARNINGS
#includeiostream
#includevector
#includealgorithmusing namespace std;class print
{
public:void operator()(int val){cout val ;}
};class Transform
{
public:int operator()(int val){return val;}
};void test01()
{vectorintv;for (int i 0; i 5; i){v.push_back(i);}vectorintvTarget;vTarget.resize(v.size());/*目标容器需要提前开辟空间*/transform(v.begin(), v.end(), vTarget.begin(), Transform());for_each(v.begin(), v.end(), print());cout endl;for_each(vTarget.begin(), vTarget.end(), print());cout endl;return;
}int main()
{test01();return 0;
}
运行结果 3. find()
要注意bool operator(const Person p)参数里要加const修饰
代码工程
#define _CRT_SECURE_NO_WARNINGS
#includeiostream
#includevector
#includestring
#includealgorithmusing namespace std;class Person
{
public:Person(string name, int age){m_name name;m_age age;}bool operator(const Person p){if (this-m_name p.m_name this-m_age p.m_age){return true;}else{return false;}}string m_name;int m_age;
};
void test01()
{vectorintv;for (int i 0; i 5; i){v.push_back(i);}/*在v容器中查找5这个元素*/vectorint::iterator pos find(v.begin(), v.end(), 4);if (pos v.end()){cout 没找到该元素 endl;}else{cout 找到该元素,为 *pos endl;}return;
}void test02()/*测试自定义数据类型*/
{Person p1(刘备, 26);Person p2(曹操, 30);Person p3(赵云, 28);Person pp(赵云, 28);vectorPersonv;v.push_back(p1);v.push_back(p2);v.push_back(p3);vectorPerson::iterator pos find(v.begin(), v.end(), pp);if (pos v.end()){cout 没找到该元素 endl;}else{cout 找到该元素 名字: pos-m_name 年龄 pos-m_age endl;}return;
}int main()
{test01();cout endl;test02();return 0;
}
运行结果