Поделиться через


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.

Класс

Функция-член

CMapPtrToPtr

Значение rValue ) const;, void*& rKey, void*& rNextPositionvoid GetNextAssoc( POSITION&

CMapPtrToWord

Значение rValue ) const;, WORD& rKey, void*& rNextPositionvoid GetNextAssoc( POSITION&

CMapStringToPtr

Значение rValue ) const;, void*& rKey, CString& rNextPositionvoid GetNextAssoc( POSITION&

CMapStringToString

Значение rValue ) const;, CString& rKey, CString& rNextPositionvoid GetNextAssoc( POSITION&

CMapWordToOb

Значение rValue ) const;, CObject*& rKey, WORD& rNextPositionvoid GetNextAssoc( POSITION&

CMapWordToPtr

Значение 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

См. также

Ссылки

Класс CMapStringToOb

Диаграмма иерархии

CMapStringToOb::GetStartPosition