作者DonaldTrunnp (The US President)
看板C_and_CPP
标题Re: [问题] 请问Linux C有类似List<T>的用法吗?
时间Mon Feb 12 13:20:50 2018
因为我也曾经有过类似的需求
而写了一套一系列的 linked list 容器
https://github.com/kevin-dong-nai-jia/OpenGC3
更加注重在 性能的优化和代码的简洁性
目前以 MIT License 发布
我的实作与 Linux list_head 的差别如下:
1. 当前置定义 #define CC_STRICT
可以「完全遵守」使用 C99+ 标准规范
不使用任何 GCC C编译器的扩展语法
但是 Linux 的实作不能
2. 提供多种 list 的资料结构
包含 doubly/singly/exclusive-or list
但是 Linux 的实作只有第一种
3. 使用 non-intrusive 容器的设计
宣告和操作 list 变得非常地容易
只需要使用 ccdll(int) list;
这与 Linux 使用方式的有巨大的改进
4. 最重要的是
它优异的的设计使得它的效能可以
在处理极大量资料时大大提升
https://i.imgur.com/ehK1uDZ.png
5. 另一个最重要的是
它的多种测资已经通过 valgrind 的检查
不会造成内存外泄和非初始化资料存取
而且拥有详细的 documentations
描述每个操作的使用方法和巨集依赖关系
这是 OpenGC3 专案被托管的地方
https://github.com/kevin-dong-nai-jia/OpenGC3
这是一个简易的范例
介绍如何使用 ccdll 对档案基於行的排序
./sort-by-lines <path-to-file> <strncmp-3rd-arg>
https://gist.github.com/kevin-dong-nai-jia/834e3d16c3c7f0f8496ef23945dbf7ca
希望你会喜欢 >皿<
喜欢并对你有帮助的话请帮我在上方点击一颗星星!
这会是我最棒的过年礼物(灿笑
※ 引述《takesi5200 (小咪)》之铭言:
: 问题(Question):
: 不好意思,.NET有List<T>集合,
: 可以很方便把资料放入集合里。
: 小妹因公司需求要在Linux平台上
: 也开发类似此方法。
: 请问Linux C有没有类似方法呢?
: 恳请个位高手指导,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 82.196.1.179
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1518412852.A.7E6.html
※ 编辑: DonaldTrunnp (146.185.185.122), 02/12/2018 13:29:06
1F:推 chrishappy11: 推~~ 02/12 13:28
2F:推 galic: 总统先生的容器 02/12 13:55
3F:推 damody: 好猛 02/12 14:28
4F:推 la8day: 厉害了这 02/12 14:35
5F:推 ggBird: 伟大的祖国统领 02/12 14:48
6F:推 Sirctal: 你是不是在WWE的摔角擂台上写出来的?? 02/12 16:02
7F:推 Neisseria: 总统级的 container,已跪 02/12 16:03
8F:→ uranusjr: 可是瑞凡, C# 通常是用 array list 不是 linked list 02/12 16:07
9F:推 dzwei: 跪了 02/12 16:19
10F:推 dannypsnl: 点进去才发现按过了XE 02/12 16:49
11F:→ dannypsnl: XD 02/12 16:49
12F:推 chrishappy11: 没想到在C#简单的List拿到C/C++竟然这麽复杂 02/12 20:47
13F:推 LPH66: 不, 只有 C 而已, C++ 的 STL 有 std::list<T> 02/12 20:57
14F:推 Ommm5566: c++还有boost MPL库的list工具 02/12 21:27
15F:→ y3k: 已给星 02/12 22:00
16F:→ DonaldTrunnp: 谢谢 >皿< 02/12 22:36
17F:推 oiu850714: 这不是专题特优的大大吗 02/12 23:26
18F:推 descent: 不知道为什麽, c 标准不加入这些资料结构 02/12 23:26
19F:→ hunandy14: 各种黑魔法 已跪 02/13 01:49
20F:推 oiu850714: 用macro干出container,超醉... 02/13 02:37
21F:推 cashlalala: 强~~~~~~ 02/13 23:40
22F:推 andrew000129: 推 02/15 15:15
23F:推 Neisseria: 补给星了,拜读 macro 语法中 >_< 02/15 17:57