2011-09-13 33 views
0

確定SI有我有以下代碼:deque的迭代器OGRE

for(deque<Ogre::Vector3>::iterator iter(mWalkList.begin()); iter != mWalkList.end() ; iter++){ 
      String tmpstr="Knot"+Ogre::StringConverter::toString(n); 
      ent = mSceneMgr->createEntity(tmpstr, "knot.mesh"); 
      tmpstr = "Knot"+Ogre::StringConverter::toString(n)+"Node"; 
      node = mSceneMgr->getRootSceneNode()->createChildSceneNode(tmpstr,*iter); 
      node->attachObject(ent); 
      node->setScale(0.1f, 0.1f, 0.1f); 
      n++; 
     } 

但視覺工作室給了我,當我將鼠標懸停懸停iterator iter它說以下內容的錯誤:Error: class "Ogre::deque<Ogre::Vector3, Ogre::STLAllocator<Ogre::Vector3, Ogre::GeneralAllocPolicy>>" has no member 'iterator'

什麼我做錯了,

對不起,即時消息Ogre和C++的新事物,它的一個學校項目,所以我真的很感謝一些幫助。

回答

0

嘗試使用std::deque<Ogre::Vector3>而不是deque<Ogre::Vector3>(在這種情況下爲Ogre::deque<Ogre::Vector3>)。

或者您可以使用Ogre::deque<Ogre::Vector3>::type。該文檔似乎表示與上面的std::deque相同。

+0

thnx做的伎倆...其奇怪的是,爲什麼我的老師會給我這個代碼..雖然它甚至沒有工作:S – sn0ep

+1

你有錯誤是非常微妙的。我認爲很多(如果不是大多數)程序員在編譯代碼之前不會意識到代碼中存在錯誤。該錯誤與依賴於參數的名稱查找(http://en.wikipedia.org/wiki/Argument-dependent_name_lookup)有關,我認爲這是C++中的高級主題。 –

+0

如果你不使用'std'並且習慣用'std ::'來填充你的東西, –