【问题标题】:deque iterator OGRE双端迭代器 OGRE
【发布时间】:2011-09-13 15:38:54
【问题描述】:

好的,我有以下代码:

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 时,Visual Studio 给了我一个错误,上面写着:Error: class "Ogre::deque&lt;Ogre::Vector3, Ogre::STLAllocator&lt;Ogre::Vector3, Ogre::GeneralAllocPolicy&gt;&gt;" has no member 'iterator'

我做错了什么,

抱歉,我是 Ogre 和 C++ 的新手,这是一个学校项目,所以我非常感谢一些帮助。

【问题讨论】:

    标签: c++ iterator deque ogre


    【解决方案1】:

    尝试使用std::deque&lt;Ogre::Vector3&gt; 代替deque&lt;Ogre::Vector3&gt;(在本例中为Ogre::deque&lt;Ogre::Vector3&gt;)。

    或者您可以使用Ogre::deque&lt;Ogre::Vector3&gt;::type。文档似乎说这与上面的std::deque 相同。

    【讨论】:

    • thnx 可以解决问题...这很奇怪为什么我的老师会给我这个代码..虽然它甚至不起作用:S
    • 您遇到的错误非常微妙。我认为许多(如果不是大多数)程序员在尝试编译之前不会意识到该代码中存在错误。该错误与依赖于参数的名称查找(en.wikipedia.org/wiki/Argument-dependent_name_lookup)有关,我认为这是 C++ 中的高级主题。
    • 如果你不使用using std并且习惯在你的东西前加上std::,这是可以避免的
    猜你喜欢
    • 2015-06-26
    • 2019-10-07
    • 2014-03-14
    • 2017-05-20
    • 2011-10-24
    • 2019-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多