2010-08-13 160 views
2
void max_idxs(vector<int> &pidxs){ 
    vector<fragment *> ids; 
    max_ids(ids); 

    for(size_t i = 0; i < ids.size(); i++){ 
    int weight_idx = ids[i]->weight_idx; //Get weight index 
    } 
} 

在這個C++代碼中,int weight_idx = ids[i]->weight_idx;是什麼意思?這個C++語句是什麼意思?

->是什麼意思?

謝謝!

+0

大家知道,' - >'操作符通常沒有空格使用(例如'ids [i] - > weight_idx') – 2010-08-13 17:15:46

+3

奇怪。我從來沒有見過像這樣使用空格周圍的' - >'。 – 2010-08-13 17:18:14

+0

@Shawn D:現在有空格 @Justin:是的,在原代碼中沒有空格 這是我的打字錯誤,我編輯了它 – ladyfafa 2010-08-13 17:23:02

回答

17

x->y表示(*x).y。換句話說,「取x指向的地址,並從那裏的對象獲得變量y」。這意味着它會從ids[i]指向的fragment獲得weight_idx

+0

我寧願說「接受對象......」,而不是「接受地址......」,但這還不夠阻止我投票給你。 ':)' – sbi 2010-08-13 17:14:04

+0

對不起,不知道懂C++指針等是不是可以用「x-> y」的東西? (保持相同的功能) – ladyfafa 2010-08-13 17:20:35

+11

@lafafafa如果你想編程C++,你將會理解指針。 – nos 2010-08-13 17:23:38