如何正確使用stl::map::iterator
的指針運算?我可以在STL :: map :: iterator上做指針運算
在下面的示例中,我創建了stl::map
和stl::map::iterator
並嘗試通過增加迭代器來訪問迭代器第二個鍵。
#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
你可以使用指針算術?
那麼cpp如何將stl :: map :: iterator的++轉換爲++? ,它是最後添加的數字,不是嗎? –
@Café吸血鬼什麼號碼加到底是什麼? – user2079303
不,這是誤會。我問的是'++'是如何最終(在編譯過程結束時)在cpp中翻譯的。我所建議的是,'++'必須產生一個增加迭代器值的數字。 –