我如何返回迭代器表单函数:
我滔滔不绝地说:...
template<class S,class T> class Database {
public:
.
..
map<S,Node<T>*> m_map::iterator Find (S keyToFind);
.
..
....
private:
.
..
map<S,Node<T>*> m_map;
..
.
};
.
..
template<class S,class T>
map<S,Node<T>*> m_map::iterator Find (S keyToFind) {
map<S,Node<T>*>::iterator itMap;
itMap = m_map.find(KeyToUpDate);
return itMap;
}
..
.
Run Code Online (Sandbox Code Playgroud)
有很多错误,因为:错误1错误C2653:'m_map':不是类或命名空间名称错误2错误C2146:语法错误:缺少';' 在标识符"查找"之前错误3错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-错误5错误C2653:'m_map':不是类或命名空间名称错误7错误C2133:'iterator':未知大小.. ...
我不明白是什么问题..
看起来你想要:
typename map<S,Node<T>*>::iterator
Run Code Online (Sandbox Code Playgroud)
你应该真的使用typedef来清理这些东西:
template<class S, class T>
class Database
{
public:
// I hope you have't put `using namespace std;` in a header...
typedef std::map<S, Node<T>*> map_type;
typedef typename map_type::iterator iterator;
// etc...
// use references to avoid copying
iterator Find (const S& keyToFind);
private:
map_type m_map;
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1191 次 |
最近记录: |