构建向量C++
construct vector C++
我目前正在为向量类实现构造函数(我的教授说,我们可以省去任何使用分配器的东西)。我使用了我的教授给我们的参考网站来确定函数的格式: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似乎不在全局范围内,因此需要使用resolution运算符来为其提供正确的范围。它似乎是std::string::size_type
。这可能只是size_t
的一个typedef。我在STL容器中看到size_type,但在创建自己的类时从未使用过它。
此外,正如Dietmar Kühl所提到的,当使用C++模板时,您需要用template <typename T>
来装饰所有东西
这段代码缺少很多上下文。这使得很难判断问题出在哪里。从错误消息来看,您似乎至少还没有定义size_type
。看起来T
也没有定义,这让我认为你试图定义构造函数,但这看起来像这样:
template <typename T>
vector<T>::vector(size_type n, T const& value):
my_vect(new T[2u * n]),
length(n)
{
for (size_type i(0); i != n; ++i) {
my_vect[i] = value;
}
// or: std::fill_n(my_vect, n, value);
}
这也修复了一些错误(使用int
与T
,使用vect
与my_vext
,未初始化使用length
)。请注意,在C++中增加变量的惯用方法是使用预增量(是的,该语言实际上应该被称为"++C",原因不仅仅是惯用)。
相关文章:
- 写入向量<向量<bool>>
- 函数向量_指针有不同的原型,我可以构建一个吗
- std::向量与传递值的动态数组
- 将值指定给向量(2D)的向量中的某个位置
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 如何使用向量的template_back函数
- 尝试通过多个向量访问变量时,向量下标超出范围
- 如何通过派生类函数更改基类中的向量
- C++从另一个类访问公共静态向量的正确方法是什么
- 如何将ampl中的集合表示为c++中的向量
- 变量没有改变?通过向量的函数调用
- 迭代时从向量和内存中删除对象
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 计算排序向量的向量中唯一值的计数
- 矩阵向量乘法(cublasDgemv)返回零
- 一对向量构造函数:初始值设定项列表与显式构造
- 将结构向量排序为子组
- 在C++中调整向量中的索引
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么