我遇到了以下编译错误,我正在努力修复:
错误C3867:'std :: vector> :: at':函数调用缺少参数列表;使用'& std :: vector> :: at'创建指向成员的指针
我的代码是:
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 :(得分:1)
at
是一个函数,它将索引作为所需数据的索引。您有两个选择:
[i]
更改为(i)
(因为这是一项功能)data.elements.my_coord[i]
)答案 1 :(得分:1)
如果要遍历向量,最好使用迭代器,这里使用reverse迭代器更好。
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;});
}