MFC 中使用 list 链表迭代器
时间: 2023-09-03 09:15:02 浏览: 51
MFC中使用std::list链表的迭代器非常简单,可以参考以下示例代码:
```cpp
#include <list>
// 假设有一个存储int类型数据的链表
std::list<int> mylist = { 1, 2, 3, 4, 5 };
// 获取链表的迭代器,指向第一个元素
std::list<int>::iterator it = mylist.begin();
// 使用while循环遍历链表
while (it != mylist.end())
{
// 输出当前迭代器指向的元素
TRACE(_T("%d "), *it);
// 将迭代器指向下一个元素
++it;
}
```
在MFC中,还可以使用CList类来进行链表操作,它对std::list进行了封装,使用起来更加方便。以下是使用CList类的示例代码:
```cpp
#include <afxtempl.h>
// 假设有一个存储CString类型数据的链表
CList<CString, CString&> mylist;
mylist.AddTail(_T("hello"));
mylist.AddTail(_T("world"));
mylist.AddTail(_T("MFC"));
// 获取链表的迭代器,指向第一个元素
POSITION pos = mylist.GetHeadPosition();
// 使用while循环遍历链表
while (pos != NULL)
{
// 输出当前迭代器指向的元素
TRACE(_T("%s "), mylist.GetNext(pos));
}
```
注意,CList的迭代器是一个POSITION类型的指针,而不是STL中的迭代器,使用方法也略有不同。