将一个值推入一个被getter函数调用的列表中的问题。

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

我试图将一个值推送到一个列表中。我的列表在一个包含许多列表的类中,这个类包含一个函数getList(int),它接收一个整数并返回它所代表的列表,例如getList(6)将返回列表G,这个包含所有列表的类被称为 "z"。然而,当我试图用它来推送一个值时:z.getList(6).push(value);它不会把它推送到G中。我怎样才能写一行把一个值推送到一个被调用getter函数的列表中?

class Fila {
public:
    LList a,b,c,d,e,f,g,h,i,j;
//public:
    LList q;
    LList getList(int n);
};

LList Fila::getList(int n) {
    if(n==0){return a;}
    else if(n==1){return b;}
    else if(n==2){return c;}
    else if(n==3){return d;}
    else if(n==4){return e;}
    else if(n==5){return f;}
    else if(n==6){return g;}
    else if(n==7){return h;}
    else if(n==8){return i;}
    else {return j;}
}

void radixsort(Node *front, Node *back) {
    Fila z;
    Node *t=front;
    while(t){
        z.q.push(t->data);
        t=t->next;
    }
    for(int k=0;k<log(99)+1;k++){
        while(!z.q.empty()){ //anade a los bucket
            if(k==0){
                for(int l=0;l<10;l++){
                    if((z.q.front())%10==l){
                        z.getList(l).push(z.q.front()); //THIS LINE 
                        break;
                    }
...
c++ class c++11 queue getter
1个回答
1
投票

改变这个

LList Fila::getList(int n) {

对此

LList& Fila::getList(int n) {

你的版本不是返回你的类中的列表,而是返回一个 拷贝 的列表。通过改变 getList 函数返回一个引用,它确实会返回(对)你的类中的列表的引用。

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