我知道如何创建一个有特定维度的类Vector,例如,如果它是3D,我会把它放在私有的3个双x、y和z中。然而,我想创建一个名为未知维度向量的类,方法是:increat-允许向向量添加维度,并向这个新维度添加值。print-打印矢量compare-将两个不同的矢量放在一起进行比较。
因此,我的方法如下:我会私下创建一个向量:
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; }
这是错误的吗?或者这里的错误在哪里?你能告诉我我能做些什么来改善这一点吗?或者如果我出了问题。
感谢
一般来说,如果您真的需要在运行时更改Vector
的维度,我认为以这种方式使用std::vector
没有任何问题。
但是您的代码充满了编译错误和逻辑错误。特别是你的compare
功能。所以我想你只是想让我们把它当作伪代码,并对总体想法发表评论。