如何从返回向量的函数中获取向量值?
Posted
技术标签:
【中文标题】如何从返回向量的函数中获取向量值?【英文标题】:how to get the vector value from function returning a vector? 【发布时间】:2016-06-12 06:52:11 【问题描述】:在 VS 2015 中编译程序时出现错误:
在没有适当的 operator() 或将函数转换为指针函数类型的情况下调用类类型的对象
它用红色标记对函数的调用,该函数返回一个向量。代码如下:
struct punct
int x, y, val;
;
int koli4estvoShagov = 0;
int arr[100][100];
int n, m;
vector<punct> shag(int x, int y, int nrShaga)
punct shag;
shag.val = arr[x][y];
shag.x = x;
shag.y = y;
vector<punct> shagi;
shagi.push_back(shag);
if (nrShaga == koli4estvoShagov - 1)
return shagi;
else if (x == m - 1)
vector<punct> shagVNiz = shag(x, y + 1, nrShaga + 1);
shagi.insert(shagi.end(), shagVNiz.begin(), shagVNiz.end());
return shagi;
else if (y == n - 1)
vector<punct> shagVPravo = shag(x + 1, y, nrShaga + 1);
shagi.insert(shagi.end(), shagVPravo.begin(), shagVPravo.end());
return shagi;
else
vector<punct> shagVPravo = shag(x + 1, y, nrShaga + 1);
vector<punct> shagVNiz = shag(x, y + 1, nrShaga + 1);
vector<punct> max;
if (sum(shagVNiz) > sum(shagVPravo))
max = shagVNiz;
else
max = shagVPravo;
shagi.insert(shagi.end(), max.begin(), max.end());
return shagi;
具体看函数“shag”的调用。
【问题讨论】:
【参考方案1】:vector<punct> shag(int x, int y, int nrShaga)
punct shag;
局部变量shag
与函数同名。
【讨论】:
以上是关于如何从返回向量的函数中获取向量值?的主要内容,如果未能解决你的问题,请参考以下文章