suchen

Heim  >  Fragen und Antworten  >  Hauptteil

C++ kann (Zeiger) nicht verwenden, um die Wertadresse im STL-Container abzurufen?

Beachten Sie, dass Zeiger anstelle von Referenzen verwendet werden: ...

int main(){

    std::vector<int> testData{100,500,60};
        
    auto atValue = [=](std::vector<int> &vec,int *data){
        for(auto it = vec.begin();it != vec.end();it++){
            if (*it == 500) {
                data = &*it;
                break;
            }
        }
    };
    
    
    int *tint = NULL;
    atValue(testData,tint);
    //*tint = 50;
    printf("%d",*tint);    
    
    return 0;
}

felix sagte:
int data wurde in int &data geändert

Problem gelöst, danke.

PHP中文网PHP中文网2782 Tage vor647

Antworte allen(1)Ich werde antworten

  • PHP中文网

    PHP中文网2017-05-16 13:31:57

    int main(){
    
        std::vector<int> testData{100,500,60};
            
        auto atValue = [=](std::vector<int> &vec,int **data){
            for(auto it = vec.begin();it != vec.end();it++){
                if (*it == 500) {
                    *data = &*it;
                    break;
                }
            }
        };
        
        
        int *tint = new int(0);
        atValue(testData,&tint);
        //*tint = 50;
        printf("%d",*tint);
        delete tint;
        
            
        
        return 0;
    }

    have try

    Antwort
    0
  • StornierenAntwort