CList::GetPrev
更新 : 2007 年 11 月
rPosition が示す位置のリスト要素を取得します。その後、リストの直前のエントリを示す POSITION 値を rPosition に設定します。
TYPE& GetPrev(
POSITION& rPosition
);
const TYPE& GetPrev(
POSITION& rPosition
) const;
パラメータ
TYPE
リストの要素の型を指定するテンプレート パラメータ。rPosition
直前の GetPrev 関数またはほかのメンバ関数の呼び出しで返された POSITION 値への参照。
戻り値
リストが const の場合は、GetPrev 関数はリストの直前の要素のコピーを返します。このとき、この関数を代入ステートメントの右辺にしか使えないので、リストは変更されません。
const 以外のリストの場合は、GetPrev 関数はリストの要素への参照を返します。このとき、この関数は代入ステートメントの右辺にも左辺にも使用できるので、リストのエントリを変更できます。
解説
GetTailPosition 関数または Find 関数を呼び出して初期位置を決定した後は、GetPrev 関数を使って前方の要素を順次取得できます。
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,
// in reverse order.
POSITION pos = myList.GetTailPosition();
for (int i = 0; i < myList.GetCount(); i++)
{
TRACE(_T("%s\r\n"), (LPCTSTR)myList.GetPrev(pos));
}
必要条件
ヘッダー : afxtempl.h