QMap 的增删改查
map 是一種數據容器,它提供一種由key 到 value 的映射。
map 的key 是唯一的, 也是有序的。map 通常由近似平衡的紅黑樹來實現。
key 的有序性,使得插入,查找節點比較有效。map 的操作(增刪改查),通常就是
對節點的操作(增刪改查)。當然,map 也有創建(new)和銷毀(delete)操作。
QMap 是Qt 實現的一種map, 與c++ stl map 使用方法一致。
QMap 的增刪改查,
程序簡單,就直接上代碼了,附上運行結果。
[cpp]view plaincopy
#include<QDebug>
voidshowmap(QStringstr);
QMap<int,int>map;
intmain(intargc,char*argv[])
{
(void)argc;
(void)argv;
QMap<int,int>::iteratorit;
//增加
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("delete2");
//修改
map[5]=1000;
showmap("change5");
//查詢
it=map.find(7);
if(it!=map.end())
{
//你可以在這里刪除
qDebug()<<"find"<<it.key()<<" "<<it.value();
}
//it刪除安全嗎?
for(it=map.begin();it!=map.end();it++)
{
if((it.key()%2)==0)map.erase(it);
}
showmap("safeeraseevenkey");
return0;
}
voidshowmap(QStringstr)
{
qDebug()<<QString("------%1--------").arg(str);
QMap<int,int>::iteratorit;
for(it=map.begin();it!=map.end();it++)
qDebug()<<it.key()<<" "<<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
版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/hejinjing_tom_com/article/details/48103455
總結
以上是生活随笔為你收集整理的QMap 的增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql100链接同时处理_php 连
- 下一篇: python 3.9特性_Python