【发布时间】:2013-06-10 13:28:18
【问题描述】:
我正在尝试声明这个函数:
template <typename T> void hi(std::map<T,double> m,std::vector<std::map<T,double>::iterator > vec)
{
//....
}
我希望函数在此映射上具有一个映射和一个迭代器向量作为参数。但是 g++ 编译器似乎不喜欢它,我收到以下错误:
type/value mismatch at argument 1 in template parameter list for ‘template<class _Tp, class _Alloc> class std::vector’
: error: expected a type, got ‘std::map::iterator’
: error: template argument 2 is invalid
有什么帮助吗?
【问题讨论】:
-
你必须使用
typename -
我已经在我的声明中使用了它,但也许你的意思是别的......你能更明确一点吗?
-
顺便说一句,你真的要按值传递这么大的数据结构吗?