2016-03-24 104 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;}); 
}