作者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