C++編譯報錯:need 'typename' before 'std::map ::iterator' because 'std::map ' is a dependent scope


使用C++的模板函數做展示輸出

template <typename T>
    inline void displayVector(vector<T>& vec){
    	for(T v : vec)cout << v;
    	cout << endl;
	}
	
	template <typename T, typename S>
	inline void displayMap(map<T, S>& mp){
		for(typename map<T, S>::iterator iter = mp.begin(); iter!=mp.end(); iter++)cout << iter->first << " " << iter->second << endl;
	}
	
	template <typename T, typename S>
	inline void displayMapVector(map<T, vector<S>>& mp){
		for(typename map<T, vector<S>>::iterator iter = mp.begin(); iter != mp.end(); iter++)cout << iter->first << " " << displayVector(iter->second);
	}

報錯后在map::iterator前面加個typename聲明模板類型是類型名即可。
參考鏈接:
Error: need ‘typename’ before iterator [duplicate]
編譯錯誤need 'typename' before *** because *** is a dependent scope 淺析


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM