2016-03-24 135 views
1

我收到我竭力要解決以下編譯錯誤:C++結構/矢量編譯問題

錯誤C3867:「的std ::矢量> ::在」:函數調用缺少參數列表;使用 '&的std ::矢量> ::在' 創建一個指向成員

我的代碼是:

struct coord_type { 
    int x; 
    int y; 
}; 

struct elements_type { 
    vector <coord_type> my_coord; 
    coord_type item2; 
    coord_type item3; 
}; 

而且有錯誤的功能是:

void position_time(data_type data) 
{ 
    int  i; 
    coord_type position; 

    for (i = data.elements.my_coord.size() - 1; i > 0; i--) { 
     position = data.elements.my_coord.at[i]; 
    } 
} 

任何想法如何解決這個問題?

+0

.at是一個函數use .at(i)來代替。 – DimChtz

回答

1

at是一個函數,它將參數作爲所需數據的索引。你有兩個選擇:

  • 變化[i](i)(因爲它是一個函數)
  • 訪問使用傳統的陣列符號(data.elements.my_coord[i]
1

如果你想遍歷向量的指數,更好地使用迭代器,這裏使用反向迭代器更好。

void position_time(data_type data) 
{ 
    coord_type position; 
    for_each(data.elements.my_corrd.rbegin(), data.elements.my_corrd.rend(), [&](coord_type& ct){position = ct;}); 
}