eclipsec++;std::vector方法无效参数错误

eclipsec++;std::vector方法无效参数错误,eclipse,c++11,android-ndk,stdvector,eclipse-cdt,Eclipse,C++11,Android Ndk,Stdvector,Eclipse Cdt,我正在开发一个Android应用程序,它使用OpenCV 2.4.9和NDKr9作为依赖项。我还使用Eclipse4.4Luna作为IDE,并安装了CDT插件8.4 每当我尝试使用std::vector.at(int)方法或“[]”方法时,我都会遇到奇怪的错误。例如,考虑代码: #include <vector> ......................... struct CustomStruct { int level; Point firstPoint, secondPo

我正在开发一个Android应用程序,它使用OpenCV 2.4.9和NDKr9作为依赖项。我还使用Eclipse4.4Luna作为IDE,并安装了CDT插件8.4

每当我尝试使用std::vector.at(int)方法或“[]”方法时,我都会遇到奇怪的错误。例如,考虑代码:

#include <vector>
.........................

struct CustomStruct {
int level;
Point firstPoint, secondPoint, middlePoint;
};
.........................

int maxElemNr = 10;
std::vector<CustomStruct > customStructVector(maxElemNr);
.........................

for(int i=0;i<customStructVector.size();i++){
            if(customStructVector.at(i).level == 0){

            }
        }
我得到:

无效参数的候选参数为:void reserve(?)

我一直在寻找答案,并且得出了这样的理论:eclipse可能不会使用std库的c++11版本

我已经从中了解了向量类。此外,这个问题与所提出的问题非常相似

如果需要,将提供有关我的环境等的更多信息。我想解决这个问题,因为到目前为止,它对我的项目来说是一个相当大的障碍

我做错了什么?在使用
std::vector
类之前,我在编译和运行代码方面没有问题


LE:显然,编辑器可以识别解决方法
&(resulttwitheventivector.data()+i)->level
,并编译代码。我仍然想使用std::vector,因为它应该被使用。

我有同样的问题。它在VisualStudio编译器中工作,但当我尝试访问向量元素时,我得到了完全相同的错误

但是,如果您不使用“at”,那么它就可以工作,例如customStructVector。at(i)使用customStructVector(i)

真奇怪。我没有详细测试它。请注意,如果有vector,则必须强制转换结果才能访问类型成员


日食只是这么好。我从编辑器中得到不存在的错误。我通常会发现,使用简单的模板就可以了,所以您的案例似乎有点极端,但我确实发现,它给了我一些根本不存在的错误。进行编译以找到问题的真相,然后忽略或关闭eclipse错误(不理想)。我最终使用了经典的c风格数组…感谢您的帮助!虽然我绕过了这个问题,但如果有人知道答案,请把它贴出来。也许其他人也会有同样的问题,也许会找到你的答案。谢谢
int maxElemNr = 10;
std::vector<CustomStruct> customStructVector;
customStructVector.reserve(maxElemNr);