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

Posted

技术标签:

【中文标题】C++ 结构/向量编译问题【英文标题】:C++ Structure/Vector Compile Issues 【发布时间】:2016-03-24 00:43:00 【问题描述】:

我遇到了以下我正在努力修复的编译错误:

错误 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 是一个使用 .at(i) 代替的函数。 【参考方案1】:

at 是一个函数,它以你想要的数据的索引作为参数。你有两个选择:

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

【讨论】:

【参考方案2】:

如果要遍历vector,最好用iterator,这里用reverse iterator比较好。

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

【讨论】:

以上是关于C++ 结构/向量编译问题的主要内容,如果未能解决你的问题,请参考以下文章

确保释放向量的 C++ 技巧,但 GNU g++ 的编译问题

Swig - 结构的 C++ 向量以及如何连接它们

如何在 C++ 中编译具有大量数据的向量?

如何在 MS 编译器中使用数组初始化 C++ 向量/集?

编译类型向量类的私有成员时出错 - C++ [重复]

小白学习C++ 教程五C++数据结构向量和数组