2010-08-13 161 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