私はマップ "languages"とそのマップ "it"に対するイテレータを持っています。- >の基本オペランドに非ポインタ型のポインタがありません '
map < string, pair< pair<string,string>, pair<int,int> > > languages;
map < string, pair< pair<string,string>, pair<int,int> > >::iterator it;
私は特定の要素にintのペアを見つけようとしていますが、cがマップのキーに既にある文字列であるとします。
どのようにこの問題を解決するために、私はコンパイル中にエラーが発生してこだわっているが、私は右のイテレータは、地図の右側の要素を指し得ることを期待languages.find(c)->second->second->first;
非ポインタ型std::pair<std::pair<std::basic_string<char>, std::basic_string<char> >, std::pair<int, int> >
をしている使用していますか?どのような助けも高く評価されます。説明の助けがあれば非常に感謝しています。 languages.find(c)
は(そしてあなたがend
イテレータをされた間接参照?はその要素が存在することがわかっているUBを行う)イテレータを返すので、オーバーロードされた->
オペレータを持っているが
多くのおかげで先生を、私はこのような巨大な細部のための注意を払っていません。なぜなら、これらのような細部についての説明が必要なときには、私たちが投票してくれる人がいるのです。 –