要创建一开始没有特定维度的类 Vector,请在类中创建一个方法,允许向向量添加维度

Posted

技术标签:

【中文标题】要创建一开始没有特定维度的类 Vector,请在类中创建一个方法,允许向向量添加维度【英文标题】:To create a class Vector which has no specific dimension at the beginning, create a method in class allowing to add a dimension to the vector 【发布时间】:2015-02-26 19:08:23 【问题描述】:

我知道如何创建一个具有特定维度的类 Vector,例如,如果它是 3D,我会放入私有的 3 个双精度 x、y 和 z。但是,我想创建一个称为未知维度向量的类,具有以下方法:增加 - 允许向向量添加一个维度,并为这个新维度添加一个值。 print - 打印出向量 compare - 比较 2 个不同的向量。

所以我的方法如下: 我会私下创建一个向量:

class Vector 
private: vector<double>vect; //
public: void print() const; 
        bool compare(Vector const& v) const; 
        vector<double> increase(double& a); 
;
void Vector::print()const 
for(size_t i(0); i < vect.size(); ++i)  cout << i << endl; 

bool Vector::compare(Vector const& v) const 
for(size_t i(0); i < v.size(); ++i)
    for(size_t j(0); j < vect.size(); ++j)
if(v[i] == vect[j])  return true; 

vector<double> Vector::increase(double& a) 
vect = vect.push_back(a); 
return vect; 

这是不正确的还是这里的错误在哪里?您能否让我知道我可以做些什么来改善这一点,或者我是否以某种方式出错了。

谢谢

【问题讨论】:

如果你想对你的代码进行详细的批评,你最好发帖到codereview.stackexchange.com 【参考方案1】:

总的来说,如果您确实需要能够在运行时更改 Vector 的尺寸,我认为以这种方式使用 std::vector 没有任何问题。

但是您的代码充满了编译错误和逻辑错误。特别是您的 compare 函数。所以我假设您只是希望我们将其视为伪代码并评论一般想法。

【讨论】:

以上是关于要创建一开始没有特定维度的类 Vector,请在类中创建一个方法,允许向向量添加维度的主要内容,如果未能解决你的问题,请参考以下文章

在类构造函数中设置 std::vector

在类中声明结构

如何利用c++编写不能被继承但可以在类外定义对象的类

C++ 在类构造函数中填充向量

用于保存任何维数组的C ++变量

c基础 数组