[英]error: 'vector' in 'class Processus<double>' does not name a template type|
我的以下代碼有問題:
template<typename T>
class Processus {
public:
typedef pair<double, T> state;
typedef vector<state> result_type;
Processus(int n = 0) : v(n+1) {}
~Processus() {};
virtual result_type operator()() = 0;
auto begin() const { return v.begin(); };
auto end() const { return v.end(); };
pair<T, T> minmax() const;
protected:
vector<state> v;
};
template <typename T>
ostream& operator<<(ostream& os, const Processus<double>::vector<state>& P) {
for (auto i = P.begin(); i != P.end(); ++i) os << i->first << ';' << i->second << endl;
return os;
};
我有以下錯誤:
錯誤:“類 Processus”中的“向量”未命名模板
為線
ostream& operator<<(ostream& os, const Processus<double>::vector<state>& P) {
謝謝您的幫助 !
看起來是因為vector
未在 class Processus
中定義。
可能你的意思是這樣的:
ostream& operator<<(ostream& os, const Processus<double>::result_type& P) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.