作者vincere (vin)
看板EE_DSnP
標題[問題] 關於template
時間Mon Oct 10 00:05:13 2011
不好意思
有爬了一下文
不過對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
1F:推 wmin0:selectionSort的prototype你怎麼寫的? 10/10 00:07
2F:→ vincere:void selectionSort(vector<T>& array, const Compare<T> 10/10 00:11
3F:→ vincere:& compare) 10/10 00:11
4F:推 wmin0:原因是vector和Compare template 用了同一個 class T 10/10 00:13
5F:→ wmin0:在你呼叫的時候一個是<string> 一個是 <double> 不一樣 10/10 00:13
6F:→ wmin0:理論上是改丟進去的東西 要傳不同template class就要宣告 10/10 00:14
7F:→ wmin0:template class T1, class T2 10/10 00:14
8F:→ vincere:感謝樓上的解釋 但是vector裡面是存取double的形態 而後面 10/10 00:31
9F:→ vincere:Greater<double>()也傳入double的形態 這樣也算是不同的 10/10 00:32
10F:→ vincere:type嗎? 10/10 00:32
11F:推 vuluy:你上面的錯誤訊息看起來像是vector裡存string 10/10 00:35
12F:→ vincere:感謝樓上的提醒:) 找到問題了 10/10 00:41