Шаблоны не называют ошибку типа в c ++ для шаблонов функций - PullRequest
0 голосов
/ 07 мая 2018

Я хочу отсортировать массив любого типа данных, для этого я использую функцию сортировки, внутри используется функция swap (). Я проверил это с целочисленным массивом и Я получаю сообщение об ошибке: ‘T’ не называет тип T sort (T t [], int n)
errors и некоторые другие ошибки (проверьте изображение). Я новичок в C ++, поэтому объясните мне, что не так с этим кодом и как его решить.

#include <iostream>
using namespace std;
template <class T>
void swap(T,T);
T sort(T t[],int n)
{ 
for(int i=0;i<n;i++)
    for(int j=i+1;i<n;i++)
        if(t[i]>t[j])
          swap(t[i],t[j]);


    return t;
}
void swap(T &x ,T &y)
{
     T temp;
     temp=*x;
     *x=*y;
     *y=temp;
 }
int main() {
int n;
cout<<"enter n value";
cin>>n;
int arr[n];
for(int i=0;i<n;i++)
cin>>arr[i];
int result[n];
result=sort(arr,n);
for(int i=0;i<n;i++)
 cout<<result[i];
return 0;
}

1 Ответ

0 голосов
/ 07 мая 2018

После некоторых правок теперь он работает. Спасибо, ребята.

#include <iostream>
using namespace std;  
template <class TT> void swape(TT &x ,TT &y)  
{ 
    x=x+y;
    y=x-y;
    x=x-y;
}

template <class TT> void  sort(TT t[],int n)
{ 
    for(int i=0;i<n;i++)
       for(int j=i+1;j<n;j++)
           if(t[i]>t[j])
               swape(t[i],t[j]);


 }
  int main() {
      int n;
       cout<<"enter n value";
      cin>>n;
      int arr[n];
      for(int i=0;i<n;i++)
      cin>>arr[i];
      sort(arr,n);
      for(int i=0;i<n;i++)
      cout<<arr[i];
      return 0;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...