c++ - Passing 2D vector by reference -


i haven't touched c++ while , encountered weird problem when passing 2d vector referrence, it's described in main function:

class solution { public:     vector<vector<int> > permute(vector<int> &num) {       vector<vector<int> > result;     //i intentionally omit codes permutation,     //only pushing original 1 result     result.push_back(num);      return result;       }      //print permutation, want pass referrence     void printperm(vector<vector<int> >  &result) {      for(int i=0; i<result.size(); i++) {          for(int j=0; j<result[i].size(); j++) {              cout << result[i][j]<<" ";             }         }      }  };  int main() {      vector<int> old;     old.push_back(1);     old.push_back(2);     old.push_back(3);      solution sol;      //this gives me error no matching function     //call, candidate argument doesn't match     sol.printperm((sol.permute(old)));       //but 1 below works!      vector<vector<int> > result = sol.permute(old);      sol.printperm(result);   } 

you need add const result allow binding rvalue

 void printperm(const vector<vector<int> >  &result)   //             ^^^^^^ 

Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

android - Keyboard hides my half of edit-text and button below it even in scroll view -

css - Make div keyboard-scrollable in jQuery Mobile? -