如何返回指向对象的指针向量。 C ++

时间:2018-11-27 18:33:39

标签: c++

enter image description here我有一个函数正在返回一个向量,该向量包含一组指向对象的指针。每个对象都是一个矩阵。见下文。主要功能

std::vector<Matrix*> matrices;
matrices = createComparisons(*coOrdinates_pointer, *cluster_values_pointer, Cluster.getNumOfColumbs() - (Wally.getNumOfColumbs()), Cluster.getNumOfRows() - (Wally.getNumOfRows()));

创建指向对象的指针并返回指针向量的函数。

std::vector<Matrix*> createComparisons(std::vector<std::vector<int>> coOrdinates, std::vector<std::vector<int>> clusvals, int stopX, int stopY){

std::vector<Matrix*> matrices;
std::vector<std::vector<int>> *clusVals = &clusvals;

for (int i = 0; i < coOrdinates.size(); i++)
{
    int L = coOrdinates[i][0];
    int C = coOrdinates[i][1];

    if (L < stopY)
    {
        if (C < stopX)
        {
            Matrix *m = new Matrix(L, C, *clusVals);
            matrices.push_back(m);
        }
    }
}
return matrices;}

下面的函数包含Matrix的类定义

class Matrix 
{
public:
int getNumOfRows();
void setNumOfRows(int numIn);

int getNumOfColumbs();
void setNumOfColumbs(int numIn);

int get_positionX();
void set_positionX(int numIn);

int get_positionY();
void set_positionY(int numIn);

std::vector<std::vector<int>> getAllVals();
int getVal(int, int);
void setVals(int&, int&, std::vector<std::vector<int>>& cluster);

Matrix(int&, int&, std::vector<std::vector<int>>);
Matrix(std::string);
Matrix();
~Matrix();

virtual void get_image_size();
void get_SSD(std::vector<std::vector<int>>one, std::vector<std::vector<int>>two);
double get_NCC(std::vector<std::vector<int>> mat1, std::vector<std::vector<int>> mat2);
virtual void get_info(std::vector<std::vector<int>> mat1, std::vector<std::vector<int>> mat2);

private:
double Ncc;
int positionX;
int positionY;
int numOfRows;
int numOfColumbs;
int image_size;
std::vector<std::vector<int>> vals;};

我基本上在主函数的第二行上遇到了错误,该错误声称我的操作数类型不同并且无法发现差异。

在此先感谢您的帮助。

0 个答案:

没有答案