stl::map::iterator
のポインタ演算を正しく使うにはどうしたらいいですか?STL :: map :: iteratorでポインタ演算を行うことができます
私はstl::map
とstl::map::iterator
を作成し、イテレータを増やしてイテレータの2番目のキーにアクセスしようとします。
#include <iostream>
#include <map>
using namespace std;
int main() {
map <string, string> peoples;
peoples["paul"] = "friend";
peoples["galactus"] = "foe";
map<string, string>::iterator my_iter = ++peoples.begin();
cout << my_iter->first << endl;
return 0;
}
++peoples.begin();
が使用されているコンパイルはOKですが、1 + peoples.begin();
が使用されている場合、エラーが発生します。
質問スタンド:stl::map::iterator
でポインタ演算を使用するには?
また、私はstl::vector::iterator
でポインタ演算を使用できることを知っていますが、同様の問題があるコンテナはありますか?
したがって、この++をstl :: map :: iteratorに変換する方法は?それは最後に追加された番号ですね。 –
@CaféVampire何の最後に何番号が追加されますか? – user2079303
それは誤解ではありません。私は「++」が最終的に(コンパイルプロセスの終わりに)どのようにcpp内で翻訳されたのかを尋ねています。私が示唆したことは、「++」はイテレータの価値を高める数値になる必要があるということです。 –