Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我使用这样的东西:
map<string, Data>::iterator it = mymap->begin(); map<string, Data>::iterator end = mymap->end(); while (it != end) { // do stuff ++it; }
我只是想知道即使地图是空的,这是否会起作用。如果地图为空,我找不到任何有关返回 map::begin() 的信息。
如果映射为空,则begin和end迭代器相等,即返回mymap->end()。
begin
end
mymap->end()
您不能尝试将迭代器递增到末尾,或者将迭代器引用到空映射,这就是为什么您必须在代码中使用 if 语句来检查映射和/或迭代器,然后再使用它。