词条 | GetNextAssoc |
释义 | CMap::GetNextAssoc void GetNextAssoc(POSITION& rNextPosition, KEY& rKey, VALUE& rValue) const 参数: rNextPosition 指定一个以前GetNextAssoc或GetStartPosition调用返回的POSITION值的参考。 KEY 指定映射关键码类型的模板参数。 rKey 指定被获取元素返回的关键码。 VALUE 指定映射值的类型的模板参数。 rValue 指定要获取元素的返回值。 说明: 获取rNextPosition位置的映射元素,然后将rNextPosition更新为映射中新的元素。该函数在遍历映射中所有元素时非常重要。 如果获取的元素为映射的最后一项,那么rNextPosition的新值将设置为零。 CMapStringToOb::GetNextAssoc void GetNextAssoc( POSITION& rNextPosition, CString& rKey, CObject*& rValue ) const; 参数: rNextPosition 指定一个以前GetNextAssoc或GetStartPosition函数调用返回的POSITION值的参考。 rKey 指定被获取元素(字符串)的返回关键码。 rValue 指定要获取元素(CObject指针)的返回值,请参阅说明以获取该参数的更多信息。 说明: 获取rNextPosition位置的映射元素,然后将rNextPosition更新为映射中新的元素。该函数在遍历映射中所有元素时非常重要。值得注意的是位置次序与关键码值次序不必相同。 如果获取的元素为映射的最后一项,那么rNextPosition的新值将设置为零。 对于参数rValue,要确保将对象类型设置为CObject*&形式,这是编译器所需要的,如下面例子所示: CMyObject* ob; map.GetNextAssoc(pos, key, (CObject* &)ob); 这并不是根据模板建立的映射中GetNextAssoc的真实结果。 示例: 请参阅CObList::CObList,了解所有收集示例中使用的CAge类。 //example for CMapStringToOb::GetNextAssoc and CMapStringToOb::GetStartPosition CMapStringToOb map; POSITION pos; CString key; CAge* pa; map.SetAt( "Bart", new CAge( 13 ) ); map.SetAt( "Lisa", new CAge( 11 ) ); map.SetAt( "Homer", new CAge( 36 ) ); map.SetAt( "Marge", new CAge( 35 ) ); // Iterate through the entire map, dumping both name and age. for( pos = map.GetStartPosition(); pos != NULL; ) { map.GetNextAssoc( pos, key, (CObject*&)pa ); #ifdef _DEBUG afxDump << key << " : " << pa << "\"; #endif } 该程序的运行结果如下: Lisa : a CAge at $4724 11 Marge : a CAge at $47A8 35 Homer : a CAge at $4766 36 Bart : a CAge at $45D4 13 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。