利用QMap的自动排序特性获取未使用的Key

利用QMap的自动排序特性获取未使用的Key

    • 前提
    • 背景
    • 算法
    • 提点

前提

	1. 当前需求里的Key是有规律的,类似前key与key直接间隔一样

背景

	1. 因为QMap具有自动key排序的特性,故而可以进行利用
	2. 时间复杂度可大O(n), n是查找次数, n 必然小于等于 QMap.size()

算法

	int newKey = 0;
	if(idNameMap.size() > 0)
	{
    	newKey = idNameMap.firstKey();// 用QMap里的最小的做查找起点
        QMap::iterator iter = idNameMap.begin();
	    for( ; iter != idNameMap.end(); iter++)
    	{
        	if(newKey == iter.key())
        	{
            	newKey++;
            	continue;
        	}
        	else {
            	break;
            }
	    }
	}
	return  newKey;

提点

	1. 对于那些非有序的数据结构,权衡排序所花时间与排序号查找所花的时间来处理, 当然排序也要遍历一遍。

你可能感兴趣的:(Qt,QMap与未用Key)