我有一个函数正在返回一个向量,该向量包含一组指向对象的指针。每个对象都是一个矩阵。见下文。主要功能
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;};
我基本上在主函数的第二行上遇到了错误,该错误声称我的操作数类型不同并且无法发现差异。
在此先感谢您的帮助。