STL向量并使用[]运算符

Hol*_*lly 4 c++ stl vector

我正在尝试使用以下行进行编译,但我遇到指针混乱:

int test = _s->GetFruitManager()->GetFruits()[2].GetColour();
std::cout << test << std::endl;
Run Code Online (Sandbox Code Playgroud)

其中_s是指向S的指针,GetFruitManager()返回指向FruitManager对象的指针,GetFruits()返回a std::vector<Fruit>*然后我希望能够使用operator []来访问特定的Fruit对象并调用Fruit的GetColour( ) 方法.

我想在某些时候我需要取消引用GetFruits()返回的向量*,但我无法弄清楚如何.

如果这有点令人费解,请道歉!我仍然对这门语言很陌生,但是会感谢一些帮助清理它.我确实尝试将其分解为更易消化的步骤但无法以任何方式编译.

我实际上只是决定不使用这个代码片段,但它变成了好奇心,所以我仍然会提交问题:)

Cth*_*utu 5

你需要这样做:

(*(_s->GetFruitManager()->GetFruits()))[2].GetColour();
Run Code Online (Sandbox Code Playgroud)