将不同类型的向量传递给模板函数
Posted
技术标签:
【中文标题】将不同类型的向量传递给模板函数【英文标题】:Passing vectors of different types to a template function 【发布时间】:2013-02-10 01:40:43 【问题描述】:我收到一个编译器错误提示
could not deduce template argument for 'std::vector<T*>&' from 'std::vector<_Ty>'
template <typename T> void foo(vector<T*>& a, int left, int right)
...
main()
...
//declare and instantiate 3 vectors
vector<int> intVector;
foo(intVector, 0, 100);
foo(doubleVector, 0, 100);
foo(charVector, 0, 100);
...
【问题讨论】:
vector<T*>&
表示你想要一个指针向量,而你给它一个非指针向量。
你为什么要做vector<T*>
而不仅仅是vector<T>
?
【参考方案1】:
int
无法匹配 T*
。
要么将vector
设为vector<int*>
,要么将模板设为vector<T>
。
【讨论】:
以上是关于将不同类型的向量传递给模板函数的主要内容,如果未能解决你的问题,请参考以下文章