是否可以通过它的指针直接访问STL链表的元素?我的程序需要快速插入,删除和访问元素。
答案 0 :(得分:3)
STL容器使用迭代器而不是指针。如果你有一个指向链表的元素的迭代器,你可以通过它访问元素的数据,使用列表的insert method插入迭代器的位置,并使用erase method在迭代器的位置删除。
答案 1 :(得分:1)
您可能希望使用指针定义自己的链接列表实现,而不是使用STL链接列表。例如:
template <class E>
struct Node {
E data;
Node * next;
};
因此,定义一个将成为链表中元素的Node类。正如Kerrek SB建议的那样,从长远来看,用迭代器重新设计程序可能会更快更好。