Graphisoft®

GSRootVersion: 1.0

HashTable<IndexType, ItemType>::BeginPairs

해시테이블의 1번째 인덱스-항목 쌍을 참조하는 반복자(iterator)를 리턴합니다.

PairIterator BeginPairs (void);
ConstPairIterator BeginPairs (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
열거 순서는 정의되어 있지 않습니다.
반복자 디레퍼런싱을 통해 획득한 쌍들에 대한 레퍼런스는 부모 해시테이블 상에서 다음 변경하기 메소드가 호출될 때까지만 사용할 수 있습니다.
이 메소드는 EnumeratePairs 메소드와 같습니다.

예제

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

GS::HashTable<GS::String, long>::PairIterator begin = hashTable.BeginPairs ();  // 1번째 인덱스-항목 pair를 참조하는 반복자 획득하기

GS::HashTable<GS::String, long>::PairIterator end   = hashTable.EndPairs ();    // 마지막 직전 인덱스-항목 pair를 참조하는 반복자 획득하기


while (begin != end) {               // 시퀀스 끝까지 (hashtable)

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

    long l       = *(begin->value);  // 반복자 디레퍼런싱 (pair 구조체를 가리키는 포인터를 리턴함)

    *(begin->value) = 4;             // 반복자 디레퍼런싱 (pair 구조체를 가리키는 포인터를 리턴함)

    ++begin;                         // 다음 pair로 전진
}

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

참고사항

EndPairs | EnumeratePairs