Gnome的gslist优于std :: forward_list的任何优势?

时间:2016-05-21 19:55:06

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

我正在更新一些1990年代的C代码并将其转换为C ++。原始代码在很大程度上依赖于Gnome's gslist(单链表)。我发现gslist非常麻烦,无法集成到面向对象的代码中,所以我真的很想将所有这些列表转换为C ++标准模板库的std::liststd::forward_list

有没有很好的理由(性能,可移植性等)不迁移到STL,而是坚持使用Gnome?

1 个答案:

答案 0 :(得分:2)

我会避免将gslist替换为std::list,因为这会将单个链接列表更改为双向链接列表。但是,我认为std::forward_list的执行效果相似,但根据您在gslist中存储的对象的大小,您可能会看到轻微的性能差异。这可能是因为glib使用切片分配器而不是std::forward_list的标准分配器。

如果您还没有使用C ++,从可移植性的角度来看,您可能不想使用C ++解决方案,因为并非所有平台都有C ++编译器。但是,如果你可以为一个平台编译Gnome,我想它也会附带一个不错的C ++编译器。

我能想到的另一件事是,如果你还没有使用STL,那么添加STL依赖可能会增加可执行文件的大小。您可能还会看到编译时间略有增加。

唯一真正知道的方法是做一些分析。