【发布时间】:2020-11-29 17:05:10
【问题描述】:
代码是:
#include <ctime>
#include <iostream>
#include <fstream>
#include <sstream>
#include <cstdlib>
#include <iterator>
#include <queue>
#include <algorithm>
#include <string>
#include <cassert>
#include <cmath>
#include <iomanip>
#include <new>
#include <algorithm>
#include <functional>
#include <vector>
using namespace std;
using std::vector;
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/io.hpp>
#include <boost/numeric/ublas/operation.hpp>
#include <boost/numeric/ublas/vector.hpp>
using namespace boost::numeric::ublas;
boost::numeric::ublas::matrix<double> A_MATRIX(A_MATRIX_ROWS,A_MATRIX_COLUMNS);
boost::numeric::ublas::matrix<double> Y_MATRIX(A_MATRIX_ROWS,1);
vector <double> GPSR_BB(boost::numeric::ublas::matrix<double> &f_Y_MATRIX,boost::numeric::ublas::matrix<double> &f_A_MATRIX,int f_tau,int f_tolA){
vector<double> objective(2);
//sth inside function
return objective;
}
int main(){
vector<double> objectives(maxiter+2);
objectives=GPSR_BB(Y_MATRIX,A_MATRIX,tau,tolA);
return 0;
}
排队
vector <double> GPSR_BB(boost::numeric::ublas::matrix<double> &f_Y_MATRIX,boost::numeric::ublas::matrix<double> &f_A_MATRIX,int f_tau,int f_tolA){
我收到此错误
错误:在“
非常感谢任何帮助。谢谢
编辑:我编辑了代码,并做了你告诉我的一切。我感谢所有的帮助,但错误仍然存在。我想,问题是因为矩阵数据类型,来自 boost 库,我必须将其传递给函数。
还有什么建议吗?
【问题讨论】:
-
我在任何地方都看不到
#include <vector>或using std::vector。修复可能就像添加缺少的包含一样简单,然后在您现在拥有vector的地方输入std::vector,或者在#include <vector>之后添加using std::vector。 (我认为这里的大多数人都会反对using声明......) -
正如@JoeZ 所说,如果这不起作用,只需提供有关错误的更多信息以及哪一行有该错误
-
这是你的完整代码吗?
-
@JoeZ 我敢打赌它应该是
boost::numeric::ublas::vector而不是std::vector。再证明using namespace是个坏主意。 -
我有 #include
或使用 std::vector,但我忘了写。我猜问题是关于函数定义。