私は標準テンプレート ライブラリを独学しようとしています。現在、私は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 番目のバージョンで一致するアイテムのインスタンスへのポインターを返すにはどうすればよいですか?