C++结构/矢量编译问题

C++ Structure/Vector Compile Issues

本文关键字:编译 问题 结构 C++      更新时间:2023-10-16

我正在努力修复以下编译错误:

错误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];
    }
}

知道怎么解决这个问题吗?

at是一个函数,它将所需数据的索引作为参数。您有两个选项:

  • [i]更改为(i)(因为它是一个函数)
  • 使用传统数组表示法(data.elements.my_coord[i])访问索引

如果你想遍历向量,最好使用迭代器,这里使用反向迭代器更好。

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;});
}