我有一个非常基本的问题。我想使用STL的列表而不是创建我自己的链表(我的代码如下所示)
struct myList
{
myList *next;
myList *previous;
};
myList->next = NULL;
使用STL列表:
#include <list>
std::list<int> L;
L.push_back(1);
我的问题是,如何访问STL列表中的“next”元素?
答案 0 :(得分:7)
std::list
是一个容器。要访问单个节点,您需要使用迭代器。
例如,要获取头节点,请使用
std::list<int>::const_iterator cit = L.begin();
要移至下一个节点,请使用
++ cit;
答案 1 :(得分:6)
使用std::advance:
std::list<int> mylist;
...
int index = 5;
std::list<int>::iterator ith_iterator = mylist.begin();
std::advance(ith_iterator, index);
int& ith_element = *ith_iterator;
答案 2 :(得分:1)
使用迭代器:
std::list<int>::iterator i = L.begin();
std::list<int>::iterator i_end = L.end();
while(i!=i_end)
{
++i;
}