5.算法

演示两个常用的算法:for_each和sort

#include <iostream>
#include <stdlib.h>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
#pragma warning(disable:4996)


void myfunction(int i)
{
    cout << "(" << i<<")";
}


int mycompare(const int &a, const int &b)
{
    return a < b;
}


int main() {


    vector<int> m(5);
    for (int i = 0; i < 5; i++)
    {
        m[i] = i + 1;
    }

    // 遍历这个数组的元素,并调用用户自己写的函数去打印数据
    for_each(m.begin(), m.end(), myfunction);
    
    printf("\n----------------排序前------------------\n");

    vector<int> v(10);
    for (int i = 0; i < 10; i++)
    {
        v[i] = rand() % 10;
    }

    for (int i = 0; i < 10; i++)
    {
        printf("%d\n",v[i]);
    }

    printf("\n----------------排序后------------------\n");
    //STL对数组进行排序的时候,STL实现了排序算法,但是排序的标准可以由用户自己来定义
    sort(v.begin(),v.end(),mycompare);
    for (int i = 0; i < 10; i++)
    {
        printf("%d\n", v[i]);
    }

    system("pause");
    return 0;
}

运行结果:

(1)(2)(3)(4)(5)
----------------排序前------------------
1
7
4
0
9
4
8
8
2
4

----------------排序后------------------
0
1
2
4
4
4
7
8
8
9

 

posted @ 2017-07-13 15:51  夜行过客  阅读(241)  评论(0编辑  收藏  举报