错误:在'之前预期的构造函数,析构函数或类型转换

问题描述 投票:0回答:2

代码是:

#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库的矩阵数据类型,我必须传递给函数。

还有什么建议吗?

c++ boost c++11
2个回答
0
投票

不完全确定这是问题所在,但是您没有包含vector.h或声明'using namespace std',因此在该范围内可能未定义向量。


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>对象,然后返回该对象。

© www.soinside.com 2019 - 2024. All rights reserved.