C ++标准库或其他广泛使用的库中的单链表?

时间:2010-05-10 02:50:27

标签: c++ linked-list singly-linked-list

似乎C ++标准库中只有双向链表(但没有单链表),对吗?有没有广泛使用的带有单链表的C ++库?

3 个答案:

答案 0 :(得分:8)

Boost中的slist类是单链表实现。

答案 1 :(得分:3)

slist,这是一个SGI扩展(__gnu_cxx::slist

#include <iostream>
#include <iterator>
#include <ext/slist>

int main(int argc, char** argv) {
  __gnu_cxx::slist<int> sl;
  sl.push_front(1);
  sl.push_front(2);
  sl.push_front(0);
  std::copy(sl.begin(), sl.end(),  // The output is 0 2 1
            std::ostream_iterator<int>(std::cout, " "));
  std::cout << std::endl;
  return 0;
}

答案 2 :(得分:3)

仅供参考......

时间已过,C ++ 11为我们带来了std::forward_list容器,它实现为单链表,与C语言实现相比基本没有任何开销。

std::list相比,当不需要双向迭代时,此容器可提供更节省空间的存储空间。

警告:缺少push_back方法(std::forward_list and std::forward_list::push_back