私は、次のコードを持っている:のfind()ブースト2領域マップに問題
wxString getColorName(const wxColour& color)
{
typedef ColorComboBox::ColorMap::right_const_iterator ConstColorIterator;
ColorComboBox::ColorMap colorMap = ColorComboBox::getDefaultChoices();
ConstColorIterator it = colorMap.right.find(color);
return it != colorMap.right.end() ? it->second :
ColorComboBox::CUSTOM_COLOR;
}
カラーマップ
typedef boost::bimaps::bimap \
<wxString, boost::bimaps::vector_of<wxColour> > \
ColorMap;
定義されており、私は基本的には検索機能がないと言う長いテンプレートのエラーを取得しておきます存在する。しかし、
ColorMap::left_const_iterator it = choices_.left.find(GetValue());
コンパイルは正常です。
私は、find関数がbimapの特定のコレクション型でのみ定義されていることを知っています。 wxColourは比較できないので、私はset_of wxColoursを使うことはできません。 (それはどういう意味ですか?)またコレクションタイプをlist_ofに変更しようとしましたが、それもうまくいきませんでした。 bimapを使用することの私の全体的なポイントは、私がどちらかの方法で値を見つけることができるようにすることでした。間違った容器を使用していますか? wxColourのために私がfind関数を使うことを可能にする別のコレクション型がありますか?
編集: 私は独自のコンテナクラスを作成しました。
ありがとうございます!あなたの答えはよかったので、私は別の解決策をとっていました。 – Eva