1

私は標準テンプレート ライブラリを独学しようとしています。現在、私はstd::find()検索に使用していstd::listます。

アイテムが存在するかどうかをテストするコードがあり、問題なく動作しているようです。

inline bool HasFlag(TCHAR c)
{
    std::list<CCommandLineFlag>::const_iterator it = std::find(m_Flags.begin(), m_Flags.end(), c);
    return (it != m_Flags.end());
}

ただし、一致する要素を返すはずのこのバージョンはコンパイルされません。「エラー C2446: ':' : 'int' から 'std::_List_const_iterator<_Mylist>' への変換がありません」というエラー メッセージが表示されます。

inline CCommandLineFlag* GetFlag(TCHAR c)
{
    std::list<CCommandLineFlag>::const_iterator it = std::find(m_Flags.begin(), m_Flags.end(), c);
    return (it != m_Flags.end()) ? it : NULL;
}

2 番目のバージョンで一致するアイテムのインスタンスへのポインターを返すにはどうすればよいですか?

4

2 に答える 2