社区
C语言
帖子详情
c语言实现stl
zengjie_0_2001
2006-11-03 08:29:29
请问怎么用c实现stl
用宏?
类似这样:
#define int ok
struct list
{
#ifdef int
int i;
#elifdef char
char str;
#else
char *string;
#endif
struct list *next;
};
...全文
496
6
打赏
收藏
c语言实现stl
请问怎么用c实现stl 用宏? 类似这样: #define int ok struct list { #ifdef int int i; #elifdef char char str; #else char *string; #endif struct list *next; };
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rickerliang
2006-11-05
打赏
举报
回复
~~
youngphoneix
2006-11-05
打赏
举报
回复
这是我的一个开源项目,目的就是用C实现STL
http://gforge.osdn.net.cn/projects/ylib/
adintr
2006-11-04
打赏
举报
回复
C 没有操作符重载,如何实现 iterator, functor?
mLee79
2006-11-04
打赏
举报
回复
C 比stl自由多了, 用啥 stl , 最简单的可以这样 ....
#include <stdio.h>
#include <stdlib.h>
#define XDS_slist_init( __h__ ) ((__h__)->xd_next = (__h__))
#define XDS_slist_erase_after( __n__ , __f__ ) \
do { \
void* __p_next_node__ = (void*)(__n__)->xd_next; \
(__n__)->xd_next = (__n__)->xd_next->xd_next; \
__f__ ( __p_next_node__ ) ; \
} while(0)
#define XDS_slist_pop_front( __h__ , __f__ ) XDS_slist_erase_after( __h__ , __f__ )
#define XDS_slist_insert_after( __n__ , __p__ ) \
do { \
(__p__)->xd_next = (__n__)->xd_next; \
(__n__)->xd_next = (__p__); \
} while(0)
#define XDS_slist_push_front( __h__ , __p__ ) XDS_slist_insert_after( __h__ , __p__ )
#define XDS_slist_cleanup( __h__ , __f__ ) \
do { \
void* __p_first_node__ ; \
while( 1 ) \
{ \
XDS_slist_pop_front( __h__ , __p_first_node__ = ); \
if( (__h__) == __p_first_node__ ) break; \
__f__ ( __p_first_node__ ); \
} \
} while(0)
#define XDS_slist_for_each( __h__ , __n__ ) \
for( (__n__) = (__h__)->xd_next; (__h__) != (__n__); (__n__) = (__n__)->xd_next )
struct testList
{
struct testList * xd_next;
int xxTmmd;
};
void foobar()
{
int i;
struct testList l , *p;
XDS_slist_init( &l );
for( i = 0; i < 10; ++i )
{
if( NULL == ( p = malloc( sizeof( *p ) ) ) )
exit(2);
p->xxTmmd = i;
XDS_slist_push_front( &l , p );
}
XDS_slist_for_each( &l , p )
printf( "%d --> " , p->xxTmmd );
printf( "NULL\n" );
p = l.xd_next->xd_next;
XDS_slist_erase_after( p , free );
XDS_slist_for_each( &l , p )
printf( "%d --> " , p->xxTmmd );
printf( "NULL\n" );
XDS_slist_cleanup( &l , free );
}
int main()
{
foobar();
}
chenzhichao2008
2006-11-04
打赏
举报
回复
你是要实现模板吧
agaric
2006-11-03
打赏
举报
回复
... 顶多用指针来装箱拆箱吧,反正不爽.
MIT 做了一个全自动的大数据分析系统
信息爆炸引爆了大数据时代的到来,前一两年大数据到达了炒作的高峰,而马云则称今后 30年 属于数据技术(DT)。但是最近一段时间大数据似乎没有那么大的动静了,这固然有技术炒作周期曲线的规律作用,也跟大数据遭遇到的一些瓶颈有关。 这个最大的瓶颈之一便是人。隐藏在大数据里面的模式挖掘很长程度上需要依靠人的建模和直觉,但是数据科学家的数量却跟不上大数据的规模发展。不过 MIT 正在为打破这个瓶颈而努力,
探索分布式系统的奥秘:MIT6.824实战指南
探索分布式系统的奥秘:MIT6.824实战指南 项目介绍 MIT6.824分布式系统是一个深入研究分布式计算的开源项目,它源自世界顶级学府麻省理工学院的同名课程。这个项目提供了一整套学习资源,包括对经典论文的深度解读、课堂讲义的翻译以及一系列基于现实世界的实验室练习。通过参与这个项目,你将有机会亲手
实现
诸如MapReduce和Raft一致性算法这样的核心组件,从而掌握分布式系统的核心原理。 项目技...
二手房大数据分析系统(附录项目代码)
二手房大数据分析系统(附录项目代码) 去发现同类优质开源项目:https://gitcode.com/ 项目简介 本项目为二手房大数据分析系统,旨在通过对海量二手房数据的挖掘与分析,为用户提供市场趋势分析、价格预测、房源推荐等功能。以下是项目代码,供有兴趣的同学们学习交流。 文件结构 . ├── data/ # 存储数据文件 ├── doc/ ...
【亲测免费】 探索MIT 6.824 Java版分布式系统课程项目:一份全方位指南
探索MIT 6.824 Java版分布式系统课程项目:一份全方位指南 简介 如果你对分布式系统、一致性算法或Java编程有热情,那么绝对值得你一看。这个项目是麻省理工学院(MIT)6.824分布式系统课程的实践部分,它提供了丰富的代码
实现
和详尽的文档,帮助学习者深入理解分布式系统的精髓。 技术分析 该项目的核心是
实现
了几个关键的分布式算法和组件: Gossip协议 - 这是一种去中心化的信息传...
探索6.824-2018: MIT分布式系统课程实践项目
探索6.824-2018: MIT分布式系统课程实践项目 是一个开源项目,源自于麻省理工学院(MIT)的分布式系统课程。这个项目旨在通过实践帮助学生和开发者深入理解分布式系统的基础概念、设计与
实现
。它提供了全面的课程材料,包括作业、实验和讨论,让学习者能够动手构建自己的分布式系统。 技术分析 项目的核心部分是
实现
了Gossip协议和MapReduce模型。其中: Gossip协议 是一种去中心...
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章