您的位置:首页 > 其它

QMap 的增删改查

2015-08-30 11:57 639 查看
QMap 的增删改查,

程序简单,就直接上代码了,附上运行结果。

#include <QDebug>

void showmap(QString str);
QMap<int, int> map;
int main(int argc, char *argv[])
{
(void) argc;
(void)argv;
QMap<int, int>::iterator it;
//增加
map.insert(1, 100);
map.insert(2, 200);
map.insert(3, 300);
map.insert(4, 400);
map.insert(5, 500);
map.insert(6, 600);

showmap("orig");
//QMap的Key会自动按升序排列
//删除
it=map.begin()+1;
map.erase(it);
showmap("delete 2");
//修改
map[5]=1000;
showmap("change 5");
//查询
it = map.find(7);
if( it != map.end())
{
//你可以在这里删除
qDebug() << "find " << it.key() <<"\t" << it.value();
}
//it 删除安全吗?
for(it=map.begin();it!=map.end();it++)
{
if((it.key() % 2) ==0) map.erase(it);
}
showmap("safe erase even key");
return 0;
}

void showmap(QString str)
{
qDebug()<<QString("------ %1 --------").arg(str);
QMap<int, int>::iterator it;
for( it=map.begin(); it!=map.end(); it++)
qDebug() << it.key() <<"\t" << it.value();
}


./test2

"------ orig --------"

1 100

2 200

3 300

4 400

5 500

6 600

"------ delete 2 --------"

1 100

3 300

4 400

5 500

6 600

"------ change 5 --------"

1 100

3 300

4 400

5 1000

6 600

"------ safe erase even key --------"

1 100

3 300

5 1000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: