似乎C++标准库中只有双向链表(但没有单链表),对吧?是否有任何广泛使用的带有单链表的 C++ 库?
问问题
4327 次
3 回答
8
Boost 中的slist
类是一个单链表实现。
于 2010-05-10T02:53:41.400 回答
5
仅供参考...
时间过去了,C++11 为我们带来了std::forward_list容器,它被实现为单链表,与 C 中的实现相比,它基本上没有任何开销。
与std::list
此容器相比,在不需要双向迭代时提供更节省空间的存储。
警告:缺少push_back
方法(std::forward_list 和 std::forward_list::push_back)
于 2014-03-15T15:27:44.857 回答
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;
}
于 2010-05-10T02:52:34.910 回答