c++ 之排序

#include<iostream>
#include<algorithm>
#include<functional>
#include<iterator>

using namespace std;
void main()
{
    int a[] = { 5, 7, 3, 4, 6 };
    sort(a, a + 5);//升幂排序
    copy(a, a + 5, ostream_iterator<int>(cout, " "));
    cout << endl;
    //降幂排序
    sort(a, a + 5, greater<int>());
    copy(a, a + 5, ostream_iterator<int>(cout, " "));
    cout << endl;
    //查找
    int *x = find(a, a + 5, 6);
    cout << *x << endl;
    if (x == a + 1)//a+1代表的是数组的第2个元素,意思是,判断a数组的第2个元素是否是*x
        cout << "there is a value 6 in array !" << endl;
    else
        cout << "no value 6 in array !" << endl;

    x = find(a, a + 5, 3);
    cout << *x << endl;
    if (x == a + 4)//a+4代表的是数组的第5个元素,意思是,判断a数组的第5个元素是否是*x
        cout << "there is a value 3 in array !" << endl;
    else
        cout << "no value 3 in array !" << endl;
}


输出结果如下所示

注意,sort 函数的参数第一a,指的是数组a,第二个指的是数组a+数组元素的个数,find函数的参数也是如此,但是if里面则不是,if里面指定的是你要查找的那个元素

是否在数组的某个位置并非指的是数组a+上数组元素的个数,我被教学视频给误导了,所以调试了半天才发现各个函数参数代表的意思!

 

end !

 

posted @ 2016-03-06 00:33  知_行  阅读(412)  评论(0编辑  收藏  举报