我正在尝试访问变量,并将其打印出来。但是,我遇到Vector subscript out of range
错误。
我在做
cout << myStruct->myVector[0].GetCoordinate(0) << endl;
,其中
myStruct
指向包含向量myVector
点的结构。所以我试图打印出它的第一个坐标。
要调试:
cout << typeid(myStruct->myVector[0].GetCoordinate(0)).name() << endl;
给了我
float
和
cout << sizeof(myStruct->myVector[0].GetCoordinate(0)) << endl;
给了我
4
然而,当我直接打印其值
时cout << myStruct->myVector[0].GetCoordinate(0) << endl;
错误讯息:
答案 0 :(得分:3)
你的矢量是空的。任何不在0
和.size()
之间的索引(不包括后者)超出范围。由于0
和0
之间没有索引,因此每个索引都超出范围。
您需要先填充矢量,例如使用.resize
或.push_back
。
答案 1 :(得分:1)
由以下原因引起的问题:
tlen = __byte_encode_array(buf, offset + pos, maxlen - pos, &this->data[0], this->size);
无法访问向量中的不存在元素。