// vector的erase的实现
void erase(unsigned int pos){
if(pos < theSize){
// 注意:"--theSize" 比 "theSize--" 效率更高
--theSize;
for(unsigned int i = pos; i< theSize; ++i){
array[i] = array[i+1];
}
}
}
#include <map>
#include <string>
#include <iostream>
int main(){
std::map<int, std::string> map_student;
map_student[1] = "name_one";
map_student[2] = "name_two";
map_student[3] = "name_three";
std::map<int, std::string>::iterator iter = map_student.begin();
for(;iter!=map_student.end();){
if((*iter).second == "name_two"){
// 注意:使用iter++。理由:erase擦除的是iter自增前的原始拷贝。
// 在执行erase后,iter为指向原始元素的下一个元素。
map_student.erase(iter++);
}else{
++iter;
}
}
return 0;
}