Как sort()
определяется в namespace std
, он всегда должен использоваться как std::sort
. Но следующий код компилируется правильно даже без std
.
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> nums = {4,3,1,7,2,0};
sort(nums.begin(),nums.end());
}
Но этот код не работает.
#include <array>
#include <algorithm>
int main()
{
std::array<int,5> nums = {4,1,8,9,6};
sort(nums.begin(),nums.end());
}
Использование gcc 4.8.4
с флагом -std=c++11
.
Из обоих этих фрагментов кода ясно, что std::vector
имеет какое-то отношение к этому. Но я не могу понять это.