vector用值查找元素,map通过key查找元素。
vector用pushback插入内容,map用insert插入内容。
(1)vector
封装数组,使用连续内存存储,对随机访问的速度很快。
vector.size(); //返回容器中元素的个数
vecor.empty(); //判断容器是否为空
vector.resize(num); //重新定义容器的元素个数
QVctor res; //定义vector对象
res.pushback(“内容”) ; //在尾部插入内容
res.popback(“内容”); //移除尾部最后一个元素
QVctor::iterator iter;
for (iter=res.begin();it!=res.end();++iter){
qDebug()<<*iter;
}
(2)map
map是基于节点的容器,元素有序。使用下标操作,第一步是查找key是否存在,map的内部实现是二叉树(AVL树或者红黑树),采用二分查找。不管是否存在key,查找key 的时候,也已经确定了key的位置。因此,如果不存在key,干脆添加一个,反正已经知道添加位置,对于基于节点的容器,在知道插入位置的情况下,插入效率为常数时间.
在key值相同的时候value值会覆盖。
QMap<bool,QString> res; //定义一个map对象
res.insert(0,“内容”); //插入内容
QMap<bool,QString>::iterator it; //遍历map
iter=res.find(“内容”);
res.erase(iter); //删除特定内容
res.erase(res.begin(),res.end()); //全部删除
for ( it = res.begin(); it != res.end(); ++it ) {
qDebug()<<“获得键—值:”<<it.key()<<it.value();
}
(3)map和vector嵌套使用
1 #include
2 #include
3 #include
4 #include