我有一個類場景是這樣的:find_if矢量和比較的成員變量
class Renderer;
class Scene
{
public:
Scene(const std::string& sceneName);
~Scene();
void Render(Renderer& renderer);
Camera& GetSceneCamera() const;
SceneNode& GetRootNode() const;
const std::string& GetSceneName() const;
private:
const std::string mName;
Camera mSceneCamera;
SceneNode mRootNode;
};
,然後我有場景的向量(vector<Scene>
)。
現在給出一個字符串,我想遍歷這個場景的向量,如果在場景中找到名字,返回一個指向它的指針。這裏有一個天真的嘗試,但我得到的編譯錯誤:
Scene* SceneManager::FindScene(const std::string& sceneName)
{
return std::find_if(mScenes.begin(), mScenes.end(), boost::bind(&std::string::compare, &sceneName, _1));
}
升壓抱怨數量的參數,所以我必須有語法錯誤..什麼是做這種正確的方法是什麼?
編輯:No instance of overloaded boost::bind matches the argument list
EDIT2:不C++ 11
由於
如果遇到編譯錯誤,請添加確切的錯誤消息。 – Zeta
沒有lambdas,C++ 11? –
如果你只是使用'std :: find(mScenes.begin(),mScenes.end(),sceneName)'? –