#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 !
原文:http://www.cnblogs.com/changbo/p/5246404.html