动态分配向量
dynamically allocating a vector
是否可以在不指定vector类型的情况下动态分配vector ?
我正在创建一个容器类,它应该支持所有的数字类型必须创建一个容器vector,该容器vector的类型将在稍后压入第一个数字时指定。
首先这个代码是正确的吗?
private :
vector<int> stk ;
public :
template <typename Typ>
void push (Typ input)
{
vector<Typ> temp ;
stk = temp ;
}
第二:我需要动态地分配"stk"向量,而不指定类型。
如果这是c++代码,那么模板在编译时被专门化。不能将 vector或任何其他模板类实例的分配延迟到运行时。
一种解决方法是使用基类自定义自己的数字类层次结构,例如CNumeric
,并分配CNumeric*
的向量。然后,向量可以在您自己的类层次结构中容纳任何数字类型。但是,当然,这种解决方法非常低效。
你没有正确地解释问题或者你没有理解你真正需要的是什么。
如果我理解正确,这就是你要找的。
template<typename Typ>
class A {
private :
vector<Typ> stk ;
public :
void push (Typ input)
{
stk.push_back(input) ;
}
}
通常你不需要在运行时改变事物的类型(在c++中你不能)。通常情况下,您希望更改程序的设计。
如果你真的想这样做,你可以使用一个联合类型,可以保存不同数量的东西之一,像这样:
union A {
int i;
float f;
double d;
};
,然后存储a的向量
相关文章:
- C++ 将抽象类型的动态分配对象传递给函数并存储在向量中
- 动态分配特征向量的模因
- 代码超出范围.如何动态分配此向量?
- 在读取大型 txt 文件时动态分配结构内的向量
- 通过引用和动态分配传递向量
- 是否可以动态分配向量?
- 附加到具有非动态分配堆栈的向量
- 使用嵌套向量动态分配方阵
- 如何释放动态分配的向量
- 如何在C++中使用"new"动态分配向量数组?
- 如何创建指向动态分配对象的指针向量
- 你能动态分配一个向量吗?
- 在C++中动态分配向量的安全方法是什么
- 动态分配随机特征向量Xd
- 另一个向量与动态分配的数组
- 对象的 C++ 向量,包含动态分配的内存 - "擦除"不起作用
- 将动态分配的变量移动到向量中
- 具有动态分配成员的结构体的向量
- 动态分配带有向量的结构
- 为什么valgrind显示泄漏,即使包含动态分配对象的向量被释放