代码是:
#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){
我收到此错误
错误:在'&lt;'之前的预期构造函数,析构函数或类型转换 令牌功能
非常感谢任何帮助。谢谢
编辑:我编辑了代码,并完成了你告诉我的所有事情。我感谢所有的帮助,但错误仍然存在。我想,问题是因为来自boost库的矩阵数据类型,我必须传递给函数。还有其他建议吗?
答案 0 :(得分:0)
不完全确定这是问题,但你没有包含vector.h或声明'using namespace std',因此在该范围内可能未定义向量。
答案 1 :(得分: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){}
您将GPSR_BB
的返回值类型定义为vector<double>
,但您将函数体设置为空。因此,您无法返回vector<double>
值。您可能需要在函数内部编写一些代码,并实例化vector<double>
对象,然后返回该对象。