findNth
テンプレート化された関数でヘルパー関数を使用するのに問題がありましたquicksort
。一致する関数呼び出しがないかのように、「宣言されていない識別子 'quicksort' の使用」が表示され続けます。何が起こっているのですか?
#ifndef ORDER
#define ORDER
#include <vector>
#include <utility>
template<typename T,typename C>
T &findNth(std::vector<T> &data,int index,const C &comp){
quicksort(&data, 0, data.size()-1);
return data[index];
}
そして、これが私のクイックソート機能です。
template<typename T,typename C>
void quicksort(std::vector<T> &data, int lo, int hi){
if(lo < hi){
int p = partition(data, lo, hi);
quicksort(data, lo, p - 1);
quicksort(data, p + 1, hi);
}
}
他のクイックソートヘルパー関数はすべて書き上げられていますが、私の知る限り、問題は発生していません。