c++ - passing vector from one class to other as object -


i have 2 classes net , ga , want pass vector ga net through main. consider following code.

class ga {     inline vector <double> get_chromosome(int i) {          return population[i];      } }  class net {     int counter;     net::setweights(vector <double> &wts){         inphidd = wts[counter];     } }  main(){     net.setweights( g.get_chromosome(chromo) ); } 

error is:

network.h:43:8: note: void network::setweights(std::vector<double>&)    void setweights ( vector <double> &wts );         ^ network.h:43:8: note:   no known conversion argument 1 ‘std::vector<double>’ ‘std::vector<double>&’ 

any idea?

this simple: according standard, const references can bind temporaries.

g.get_chromosome(chromo) returns temporary, , net::setweights(vector <double> &wts) tries bind regular reference.

the line network::setweights(std::vector<double>& wts) should network::setweights(const std::vector<double>& wts) if you're not going change vector, or network::setweights(std::vector<double> wts) if do.

one last option move vector around, in case should use move semantics.


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -