0
我有一个Foo
类,它需要T
类型的值。我也想将它们存储在矢量中。我尝试了几种方法,但没有找到任何解决方案。请查看下面的源代码以了解我想实现的目标。存储泛型T类的C++向量
#include <iostream>
#include <vector>
template<class T> class Foo
{
public:
T getVar(T var)
{
return var;
}
};
int main()
{
template<class T>
std::vector<Foo<T>> foos;
Foo<int> foo1;
Foo<double> foo2;
foos.push_back(foo1); // doesn't work this way
foos.push_back(foo2);
return 0;
}
'Foo'和'Foo '是两种*不同*类型。向量与数组一样,只能存储单个类型的元素。如果您有支持C++ 17的编译器,请查看['std :: any'](http://en.cppreference.com/w/cpp/utility/any)或['std :: variant'](http ://en.cppreference.com/w/cpp/utility/variant),或者它们的Boost等价物。 –
一旦检索到矢量元素,你想做什么?你能展示一些概念代码吗? –
这个概念是一个分层架构,每层都可以有'T'型的状态。我打算使用这些状态通过网络/ ...与上层(抽象)层进行通信。 – user3022069