Graphisoft®

GSRootVersion: 1.0

AssociativeContainer<IndexType, ItemType>::EnumeratePairs

연관 컨테이너 내용의 열거를 허용합니다.

PairIterator EnumeratePairs (void);
ConstPairIterator EnumeratePairs (void) const;

리턴 값

연관 컨테이너의 1번째 인덱스-항목 쌍(pair)을 참조하는 순방향 반복자 또는 상수 순방향 반복자입니다.

설명

이 메소드는 연관 컨테이너의 내용을 인덱스-항목 (키-값) 쌍의 시퀀스로 순방향 열거할 수 있게 해줍니다. 이것은 연관 컨테이너의 1번째 인덱스-항목 쌍(pair)을 참조하는 순방향 반복자 또는 상수 순방향 반복자를 리턴합니다. 쌍(pair)은 2개의 멤버를 가지고 있는 단순한 구조체입니다:

    const IndexType*  key;
    ItemType*         value;
비-상수 순방향 반복자들에 대해서는 이와 같습니다. 그리고
    const IndexType*  key;
    const ItemType*   value;
상수 순방향 반복자들에 대해서는 이와 같습니다. 여기서 key는 현재 인덱스를 가리키며 value는 현재 항목을 가리키고 있습니다. 그래서 다음과 같이 현재 인덱스와 현재 항목을 접근할 수 있습니다:
    *(iterator->key)    // 인덱스에 대한 레퍼런스

    *(iterator->value)  // 항목에 대한 레퍼런스
또는
    iterator->key->anIndexMember
    iterator->value->anItemMember
열거 순서는 정의되어 있지 않습니다.
반복자 디레퍼런싱을 통해 획득한 쌍들에 대한 레퍼런스는 부모 연관 컨테이너 상에서 다음 변경하기 메소드가 호출될 때까지만 사용할 수 있습니다.
이 메소드는 BeginPairs 메소드와 같습니다.

예제

GS::HashTable<GS::String, long> hashTable;                                     // {strings, long} pair들의 hashtable

GS::AssociativeContainer<GS::String, long>& associativeContainer = hashTable;  // {string, long} pair들의 연관 컨테이너 (hashTable을 참조함)

GS::AssociativeContainer<GS::String, long>::PairIterator it = associativeContainer.EnumeratePairs ();  // pair 반복자 획득하기 (또는 associativeContainer.BeginPairs ())


while (it != NULL) {              // 시퀀스 끝까지 (연관 컨테이너)

    GS::String s = *(it->key);    // 반복자 디레퍼런싱 (pair 구조체에 대한 포인터를 리턴함)

    long l       = *(it->value);  // 반복자 디레퍼런싱 (pair 구조체에 대한 포인터를 리턴함)

    *(it->value) = 4;             // 반복자 디레퍼런싱 (pair 구조체에 대한 포인터를 리턴함)

    ++it;                         // 다음 pair로 전진

}

이 예제는 연관 컨테이너로부터 획득한 쌍(pair) 반복자들의 사용법을 설명합니다.

참고사항

BeginPairs | EndPairs