CList::GetNext
更新 : 2007 年 11 月
rPosition が示す位置のリスト要素を取得します。その後、リストの次のエントリを示す POSITION 値を rPosition に設定します。
TYPE& GetNext(
POSITION& rPosition
);
const TYPE& GetNext(
POSITION& rPosition
) const;
パラメータ
TYPE
リストの要素の型を指定するテンプレート パラメータ。rPosition
直前の GetNext、GetHeadPosition などのほかのメンバ関数の呼び出しで返された POSITION 値への参照。
戻り値
リストが const の場合、GetNext はリストの要素のコピーを返します。このとき、この関数を代入ステートメントの右辺にしか使えないので、リストは変更されません。
const 以外のリストの場合は、GetNext 関数はリストの要素への参照を返します。このとき、この関数は代入ステートメントの右辺にも左辺にも使用できるので、リストのエントリを変更できます。
解説
GetHeadPosition 関数または Find 関数を呼び出して初期位置を決定した後は、GetNext 関数を使用して末尾方向の要素を順次取得できます。
POSITION 値がリスト内の正しい位置を指していることを確認する必要があります。この値が無効な場合は、MFC ライブラリのデバッグ環境ではアサートされます。
取得した要素がリストの最後の要素の場合、rPosition の新しい値に NULL が設定されます。
使用例
// Define myList.
CList<CString,CString&> myList;
// Add two elements to the list.
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));
// Dump the list elements to the debug window.
POSITION pos = myList.GetHeadPosition();
for (int i = 0; i < myList.GetCount(); i++)
{
TRACE(_T("%s\r\n"), (LPCTSTR)myList.GetNext(pos));
}
必要条件
ヘッダー : afxtempl.h