CMapStringToOb::GetNextAssoc
Извлекает элемент карты на rNextPosition, затем обновляет rNextPosition для обращения к следующему элементу в сопоставлении.
void GetNextAssoc(
POSITION& rNextPosition,
CString& rKey,
CObject*& rValue
) const;
Параметры
rNextPosition
Определяет ссылку на значение POSITION, возвращенному предыдущими GetNextAssoc или вызова GetStartPosition.rKey
Определяет возвращаемый ключ возвращаемого элемента (string).значение rValue
Определяет возвращаемое значение возвращаемого элемента (указателя CObject ). См. примечания дополнительные сведения об этом параметре.
Заметки
Эта функция наиболее полезен для перебора всех элементов в сопоставлении. Обратите внимание, что последовательность позиции не обязательно совпадает с последовательностью значений ключа.
Если полученный элемент является последним в сопоставлении, то новое значение rNextPosition установлено в NULL.
Для параметра значение rValue необходимо привести тип объекта в CObject*&, что компилятор требует, как показано в следующем примере:
CObject* ob;
map.GetNextAssoc(pos, key, (CObject*&)ob);
Это не так GetNextAssoc сопоставления на основе шаблонов.
В следующей таблице приведены другие функции-члены, которые похожи на CMapStringToOb::GetNextAssoc.
Класс |
Функция-член |
---|---|
Значение rValue ) const;, void*& rKey, void*& rNextPositionvoid GetNextAssoc( POSITION& |
|
Значение rValue ) const;, WORD& rKey, void*& rNextPositionvoid GetNextAssoc( POSITION& |
|
Значение rValue ) const;, void*& rKey, CString& rNextPositionvoid GetNextAssoc( POSITION& |
|
Значение rValue ) const;, CString& rKey, CString& rNextPositionvoid GetNextAssoc( POSITION& |
|
Значение rValue ) const;, CObject*& rKey, WORD& rNextPositionvoid GetNextAssoc( POSITION& |
|
Значение rValue ) const;, void*& rKey, WORD& rNextPositionvoid GetNextAssoc( POSITION& |
Пример
См. перечисление CObList::CObList для класса CAge, используемого во всех примерах коллекции.
CMapStringToOb map;
POSITION pos;
CString key;
CAge* pa;
map.SetAt(_T("Bart"), new CAge(13));
map.SetAt(_T("Lisa"), new CAge(11));
map.SetAt(_T("Homer"), new CAge(36));
map.SetAt(_T("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 << _T(" : ") << pa << _T("\n");
#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
Требования
Header: afxcoll.h