我目前正在为 vector 类实现构造函数(我的教授说我们可以省略任何使用分配器的东西)。我使用教授给我们的引用网站来确定函数的格式:http://www.cplusplus.com/reference/stl/vector/vector/
我的函数出现了一些错误。其中两个错误是:
语法错误:标识符“size_type”
'value' : 未声明的标识符
知道为什么我会收到这些错误吗?这是我的代码:
explicit vector (size_type n, const T& value= T())
{
my_vect=new int x[2*n];
for(int i=0; i<n; i++)
{
vect[i]=value;
length++;
}
}
最佳答案
如果您在 .h 文件中定义您的类,那么 = T()
是默认值。当您在 .cpp 或 .cc 文件中实现该方法时,您将省略默认值。
size_type 似乎不在全局范围内,因此您需要使用解析运算符为其提供正确的范围。它似乎是 std::string::size_type
.这可能只是 size_t
的类型定义.我在 STL 容器中看到了 size_type,但我在创建自己的类时从未使用过它。
此外,正如 Dietmar Kühl 提到的,在使用 C++ 模板时,您需要使用 template <typename T>
装饰所有内容
关于c++ - 构造 vector C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9423618/