错误C2065:'temp':未声明的标识符
我知道对于“temp”我需要声明数组的类型是int temp []但是如果我不知道它是什么...它可以是int
或{{1 }}或string
..如何创建临时数组而不指定它应该是什么
这是我的代码:
double
答案 0 :(得分:3)
在模板函数或类的上下文中,模板参数是“真实”类型。 temp
所需的类型仅为T*
。
更新
由于T
是数组类而不是元素类型,因此您实际上需要T::value_type*
作为临时值。
答案 1 :(得分:2)
temp应该是一系列临时物品吗?那听起来像你需要做的事情:
typedef typename T::value_type U;
U *temp = new U[count];
完成后不要忘记delete[]
!
另外,作为旁注,更多的c ++ - 是要做的事情是使用指针/迭代器。这样,您的算法将适用于更多类型的容器,而不仅仅是为数组建模的东西。
此外,正如Tim Sylvester建议的那样,您可以使用std::vector<U> temp(count)
为您管理内存。