[英]Sort function is giving error in C++ code of merge sort
#include <iostream>
using namespace std;
// merging two sorted array
void merge1(int a[], int b[], int m, int n)
{
int c[m + n];
for (int i = 0; i < m; i++)
c[i] = a[i];
for (int i = 0; i < n; i++)
c[m + i] = b[i];
sort(c, c + m + n);
for (int i = 0; i < (m + n); i++)
cout << c[i] << " ";
}
int main()
{
int a[] = {10, 15, 20, 20};
int b[] = {1, 12};
merge1(a, b, 4, 2);
}
錯誤:
error: 'sort' was not declared in this scope; did you mean 'qsort'?
21 | sort(c, c + m + n);
| ^~~~
| qsort
該程序在clang
和gcc
的更高版本上有效,這意味着需要更高版本的標准。 如果您刪除正在使用的編譯器版本,則可以重現此問題。 如果您放棄編譯器版本,您將需要包含<algorithm>
並且程序將正常工作。
看一看。
gcc
@8.3 - https://wandbox.org/permlink/2qsicDDWFvRHoWMa會拋出錯誤gcc
@9.1 - https://wandbox.org/permlink/xoqhbDdoVAyNP6hq工作正常。gcc
@7.2 - https://wandbox.org/permlink/rFekziKv36YoqJua也可以正常工作。 我最好的猜測是編譯器在編譯時以某種方式識別 function,或者 function 在更高的<iostream>
標准版本中可見,它包含在某些隱藏的頭文件中。
您也可以在clang++
方面看到類似的故事。
using namespace std;
. 請。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.