c++ - 构造 vector C++

标签 c++ vector constructor size-type

我目前正在为 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/

相关文章:

c++ - 一个循环语句完成后如何循环?

c# - 使用 ISO C++ 回调注册委托(delegate)函数(在单声道上)

python - 使用 str 为 init 子类化元组

c++ - Opengl 64 位窗口

c++ - 编译器能内联这个方法吗?

python - 如何使用 matplotlib 在 python 中绘制向量

c++ - vector 的最后一项不显示/vector 索引问题

c++ - 类模板 : Order of Construction

c++ - 有条件地调用基本构造函数

c++ - MacOS Sierra - cmake 因 qt5 而失败