QMap
//赋值
QMap<int,QString> map;
for(int i=0; i<10; ++i){
map.insert(i,QString("a-%1").arg(i));
}
//删除指定 key - 错误的方法
//QMap<int,QString>::iterator it;
//for(it = map.begin(); it != map.end(); ++it){
// if(it.key() == 2){
// it = map.erase(it);
// //--it; //这种--的写法是错误的
//}else if(it.key() == 3){
// it = map.erase(it);
// //--it;//错误的写法
//}
//}
//删除指定 key - 正确的方法
QMap<int,QString>::iterator it = map.begin();
while(it != map.end()){
qDebug()<<"it.key:"<<it.key()<<i;
if(it.key() == 2){
it = map.erase(it);
}else if(it.key() == 3){
it = map.erase(it);
}else{
++it;
}
}
//遍历
for(it = map.begin(); it != map.end();++it){
qDebug()<<"it.key:"<<it.key()<<it.value();
}
//删除所有元素
it = map.begin();
while(it != map.end()){
it = map.erase(it);//这里不需要 --
}
//---输出---------
it.key: 0 "a-0"
it.key: 1 "a-1"
it.key: 4 "a-4"
it.key: 5 "a-5"
it.key: 6 "a-6"
it.key: 7 "a-7"
it.key: 8 "a-8"
it.key: 9 "a-9"