#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> ivec;
for (int i = 0; i < 10; ++i)
ivec.push_back(i);
if (std::is_sorted(ivec.begin(), ivec.end()))
cout << "Support!" << endl;
else
cout << "Not Support!" << endl;
}
發現:2010可以通過編譯,2008則不行!
於是我又查了《C++標準程序》壹書,發現上面也沒有,初次判斷is_sorted不是98標準的內容。
我又查看了最新的C++0x標準草稿N3225,果然發現了~由於我沒有98標準,所以不能夠斷定is_sorted不是98的內容,但是我在google上的壹些英文網站上得知與我預測的差不多~(雖然在壹個網站上差到說SGI版本的STL有is_sorted函數,但是我在侯捷的《STL源碼剖析》中仍未找到,進壹步肯定了不是98標準的內容)!
所以,is_sorted是C++0x新標準裏邊的內容,雖然標準還沒有面世,但是Visual Studio 2010已經實現了部分新標準的內容!
還有妳可以在VS2005下使用另壹種替換方式(如果妳很像用STL來實現這壹功能):
adjacent_find(begin(), end(), greater_than<T>()) == end()
來代替
is_sorted(begin(), end())
另外,團IDC網上有許多產品團購,便宜有口碑