用指针直接访问STL列表中的元素

Direct access to element of STL list with a pointer

本文关键字:列表 元素 STL 访问 指针      更新时间:2023-10-16

是否可以直接通过它的指针访问STL链表的元素?我的程序需要快速插入,删除和访问元素。

STL容器使用迭代器代替指针。如果你有一个指向链表元素的迭代器,你可以通过它访问元素的数据,使用列表的insert方法在迭代器的位置插入,并使用erase方法在迭代器的位置删除。

与其使用STL链表,不如使用指针定义自己的链表实现。例如:

template <class E>
struct Node {
    E data;
    Node * next;
};

定义一个Node类,它将是链表中的一个元素。正如Kerrek SB所建议的那样,从长远来看,用迭代器重新设计程序可能会更快更好。