看板 EE_DSnP 關於我們 聯絡資訊
不好意思 有爬了一下文 不過對template還有些模糊 所以想要請教一下大家 當我在呼叫selectionSort(ivector,Greater<double>()); 它compile會出現 error: no matching function for call to 'selectionSort(std::vector< std::basic_string<char> >&, Greater<double>)' 因為在template中都有定義好傳入的參數 所以在想說是否是在呼叫函數時要出的問題 但目前還是一直找不到原因 希望大家給我一些提示 小弟感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.155.169.8
wmin0:selectionSort的prototype你怎麼寫的? 10/10 00:07
vincere:void selectionSort(vector<T>& array, const Compare<T> 10/10 00:11
vincere:& compare) 10/10 00:11
wmin0:原因是vector和Compare template 用了同一個 class T 10/10 00:13
wmin0:在你呼叫的時候一個是<string> 一個是 <double> 不一樣 10/10 00:13
wmin0:理論上是改丟進去的東西 要傳不同template class就要宣告 10/10 00:14
wmin0:template class T1, class T2 10/10 00:14
vincere:感謝樓上的解釋 但是vector裡面是存取double的形態 而後面 10/10 00:31
vincere:Greater<double>()也傳入double的形態 這樣也算是不同的 10/10 00:32
vincere:type嗎? 10/10 00:32
vuluy:你上面的錯誤訊息看起來像是vector裡存string 10/10 00:35
vincere:感謝樓上的提醒:) 找到問題了 10/10 00:41