2010-01-09 47 views
0

我有一個非常基本的問題。我想用STL的列表,而不是創造我自己的鏈表的(我的代碼如下所示)在C++鏈接列表如何去「下一個元素」使用STL列表

struct myList 
{ 

    myList *next; 
    myList *previous; 
}; 

myList->next = NULL; 

使用STL列表:

#include <list> 

std::list<int> L; 
L.push_back(1); 

我的問題是,如何訪問「下一步」元素在STL的列表中?

回答

7
std::list

是一個容器。要訪問單個節點,您需要使用迭代器。

例如,要獲得頭節點,您使用

std::list<int>::const_iterator cit = L.begin(); 

要移動到下一個節點,您使用

++ cit; 
+0

非常感謝! – cppb

1

使用迭代

std::list<int>::iterator i = L.begin(); 
std::list<int>::iterator i_end = L.end(); 
while(i!=i_end) 
    { 
    ++i; 
    } 
+1

哇,現在這是一個不正確的代碼... –

+0

Yeap,++我是關鍵..謝謝! – cppb

+0

這段代碼究竟意味着什麼? –

5

使用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; 
相關問題