C++ tidak boleh menggunakan (penunjuk) untuk mendapatkan alamat nilai dalam bekas STL?
PHP中文网
PHP中文网 2017-05-16 13:29:57
0
1
646

Sila ambil perhatian bahawa penunjuk digunakan dan bukannya rujukan: ...

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 berkata:
int data ditukar kepada int &data

Selesai masalah terima kasih.

PHP中文网
PHP中文网

认证0级讲师

membalas semua(1)
Ty80
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;
}

sudah mencuba

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan