Java教程

STL中常用的两种遍历算法

本文主要是介绍STL中常用的两种遍历算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#include <bits/stdc++.h>

using namespace std;

class myprintf
{
public:
    void operator()(int val)
    {
        cout << val << " ";
    }
};

class mytransform
{
public:
    int operator()(int val)
    {
        return val + 1;
    }
};

/*
stl中两种常用的遍历算法的基本用法
for_each
transform 
*/

int main()
{
    int num = 10;
    srand((int)time(0));
    //给源容器填入数据
    vector<int> v_source;
    for (int i = 0; i < num; i++)
    {
        v_source.push_back(rand() % 100);
    }
    //遍历原容器
    for_each(v_source.begin(), v_source.end(), myprintf());
    vector<int> v_object(num);
    //将源容器的数据搬运至目标容器(可以在仿函数中进行逻辑操作)
    transform(v_source.begin(), v_source.end(), v_object.begin(), mytransform());
    //遍历目标容器
    cout << endl;
    for_each(v_object.begin(), v_object.end(), myprintf());
}
这篇关于STL中常用的两种遍历算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!