1

我正在尝试访问一个变量,并将其打印出来。但是,我遇到了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;

错误信息:

在此处输入图像描述

4

2 回答 2

4

你的向量是空的。任何不在0.size()(不包括后者)之间的索引都超出范围。0由于和之间没有索引0,因此每个索引都超出范围。

您需要先填充您的向量,例如使用.resize.push_back

于 2013-11-07T08:11:00.490 回答
1

引起的问题:

tlen = __byte_encode_array(buf, offset + pos, maxlen - pos, &this->data[0], this->size);

无法访问向量中不存在的元素。

于 2013-11-07T11:09:16.360 回答