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
|