Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 非常基本的std::向量迭代 std::vector::iterator itr; 对于(itr=mSelectedObjects.begin();itr!=mSelectedObjects.end();itr++){ itr->showBoundingBox(真);//此处 }_C++_Vector_Iteration_Std - Fatal编程技术网

C++ 非常基本的std::向量迭代 std::vector::iterator itr; 对于(itr=mSelectedObjects.begin();itr!=mSelectedObjects.end();itr++){ itr->showBoundingBox(真);//此处 }

C++ 非常基本的std::向量迭代 std::vector::iterator itr; 对于(itr=mSelectedObjects.begin();itr!=mSelectedObjects.end();itr++){ itr->showBoundingBox(真);//此处 },c++,vector,iteration,std,C++,Vector,Iteration,Std,我在标记行中看到“表达式必须有指向类类型的指针”,我不知道为什么。有人能帮忙吗?将错误的行替换为: std::vector<Ogre::SceneNode*>::iterator itr; for(itr=mSelectedObjects.begin();itr!=mSelectedObjects.end();itr++){ itr->showBoundingBox(true); //here } 由于您正在存储指针,因此需要两次取消对itr的引用以从迭代器到对象(一

我在标记行中看到“表达式必须有指向类类型的指针”,我不知道为什么。有人能帮忙吗?

将错误的行替换为:

std::vector<Ogre::SceneNode*>::iterator itr;
for(itr=mSelectedObjects.begin();itr!=mSelectedObjects.end();itr++){
    itr->showBoundingBox(true); //here
}

由于您正在存储指针,因此需要两次取消对itr的引用以从迭代器到对象(一次用于迭代器,一次用于指针)。

将错误行替换为:

std::vector<Ogre::SceneNode*>::iterator itr;
for(itr=mSelectedObjects.begin();itr!=mSelectedObjects.end();itr++){
    itr->showBoundingBox(true); //here
}

由于您正在存储指针,因此需要两次取消对itr的引用,才能从迭代器到对象(一次用于迭代器,一次用于指针)。

谢谢!原因是什么?(我假设这是一个指针向量?@PigHead:见更新的答案。我希望这足够清楚。谢谢!原因是什么?(我假设这是一个指针向量?@PigHead:见更新的答案。我希望这足够清楚。