2011-01-29 50 views
0

我有一些问题,里面的指针调用它,我认为这些是标准的问题,但幽冥少我无法来解决这些问题......定义的类矢量的矢量和由功能

我的苦衷被用来定义一个类(CRegression)的矢量的矢量,并将其初始化为num_bits向量元素和作为初始化段的CRegressionCRegression需要num_mesurments它们中的每一个的一个元件仪表)。其次,我怎样才能在函数solve_regression中调用CRegression中的元素R2。

我希望下面的例子将解释为什么我需要b作为指针。

如果不清楚,请告诉我,我会添加更多信息。

问候

#include <iomanip> 
#include <queue> 
#include <vector> 
#include <cstdint< 
#include <Eigen/Core> 

typedef Eigen::Matrix< double , Eigen::Dynamic , 1 > VectorXd; 
typedef Eigen::Matrix< double , 1    , 1 > Scalard; 

void solve_regression(std::queue<double> *b , double &CReg_index , 
         std::vector<CRegression> &Reg) { 
     std::cout << "size of b" << (*b).size()  << std::endl; 
     std::cout << "R2" << (*Reg[CReg_index]).R2[0] << std::endl; 

     VectorXd::Map(&(*b).front() , (*b).size()); 
} 

class CRegression { 

public: 
CRegression(uint32_t num_mesurments); 
    Scalard  R2; 

private: 

}; 


int main(int argc, char* argv[]) { 

     uint8_t num_bits = 20; 
     std::vector<double> CReg_index(num_bits,0); 
     std::vector< std::queue<double> > b(num_bits); 
     // The next line does not pass compilation (why?) 
     std::vector< std::vector<CRegression> > Reg(num_bits , 
        std::vector<CRegression>(1,CRegression(50))); 

     for (uint8_t i = 0; i < num_bits ; i++) 
      solve_regression(&(b[i]) , CReg_index[i] , &(Reg[i])); 

} 
+1

请在编辑时发布您提到的错误,以节省我们(读者)的猜测。 – dcousens 2011-01-29 11:47:03

+0

题外话:没有人知道SO当前用于代码片段,评论框等的字体名称吗?我喜欢! – Marlon 2011-01-29 11:48:43

回答

0

我希望下面的例子解释了为什么我需要b作为一个指针。

您不需要b作为指针。使用参考参数。

干杯&第h。,