[英]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.