template <class T>
bool cmp(const T &a, const T &b){
return a <= b;
}
template <class T>
void bubble_sort(T tablica[], int size, bool compare(T,T)){
bool change = true;
while(change){
change = false;
for(int i=0; i < size-1; ++i){
if(compare(tablica[i+1], tablica[i])){
zamien(tablica[i+1], tablica[i]);
change = true;
}
}
}
}
を比較機能を、私はエラーを持っている独自のテンプレートで配列をソートは、それが動作しないC++で
bool cmp(const int a, const int b){
return a <= b;
}
すべてうまく動作します。 テンプレートを使用するためにcmp関数を変更するにはどうすればよいですか? 「CMP」機能は、タイプの
bool compare(T,T)
ですが:
C++にはジェネリックがなく、テンプレートがあります。 2つは同じように見えるかもしれませんが、根本的に異なる方法で動作します。 – Jasper
compare(T、T)を 'compare(const T&、const T&)'に変更し、 'zamien'行をコメントアウトしたときに、Mineがコンパイルされました。 'zamien'を' std :: swap'に変更すると、数字が少なくとも違っていたときに正しい結果が得られました。 – chris
@ジャスパーしかし、あなたは一般的なプログラミングを行うためにテンプレートを使用します:-) – juanchopanza