2014-03-24 113 views
0

我想以简单的方式排序数组,但我确实得到下面的错误。如何处理?'sort(int [2000],int)'没有匹配的函数|而排序阵列

**No matching function for call to 'sort(int [2000], int)'|**

#include <iostream> 
#include <algorithm> 

using namespace std; 

int main(){ 
    int v[2000]; 
    std::sort(v, 2000); 
    cout << "Hello world!" << endl; 
    return 0; 
} 

回答

1

正确的说法是:

std::sort(v, v + 2000); 

这个函数有两个迭代器,开始和范围的结束进行排序。指针是一个随机访问迭代器,所以它可以被一个需要的函数使用。在这种情况下,v + 2000指向数组末尾并正确代表范围的末尾。

+0

@chris:据此编辑。 – 2014-03-24 20:50:16

1

你有两种可能性:

std::sort(v, v + 2000); 

或者

std::sort(std::begin(v), std::end(v)); 

第一种方法只适用于数组,后者的作品与std::vectorstd::array和其它容器的很多的。

相关问题