用c语言写 成一个vector
来源:互联网 发布:python网络编程 pdf 编辑:程序博客网 时间:2024/06/05 17:19
头文件
#ifndef __BlockVector_H_#define __BlockVector_H_#define BLOCK_VECTOR_DEF(Type) \ struct jdaVector##Type { \ int size; \ int capacity; \ Type *data; \ }#define BLOCK_VECTOR(Type) \ struct jdaVector##Type#define BLOCK_VECTOR_NEW(v, size_, Type) \ do { \ (v).size = 0; \ (v).capacity = 2 * size_; \ (v).data = (Type*)malloc((v).capacity * sizeof((v).data[0])); \ } while (0)#define BLOCK_VECTOR_INSERT(v, value, Type) \ do { \ (v).size++; \ if ((v).size > (v).capacity) { \ int capacity_new = 2 * (v).capacity; \ (v).data = (Type*)realloc((v).data, capacity_new * sizeof(value)); \ (v).capacity = capacity_new; \ } \ (v).data[(v).size - 1] = (value); \ } while (0)#define BLOCK_VECTOR_INSERT_MORE(v, values, size_, Type) \ do { \ int size_new; \ size_new = (v).size + size_; \ if (size_new > (v).capacity) { \ int capacity_new = 2 * (((v).capacity < size_new) ? size_new : (v).capacity); \ (v).data = (Type*)realloc((v).data, capacity_new * sizeof((values)[0])); \ (v).capacity = capacity_new; \ } \ memcpy(&(v).data[(v).size], values, size_ * sizeof((values)[0])); \ (v).size = size_new; \ } while (0)#define BLOCK_VECTOR_DEFAULT_LEN 200#define BLOCK_VECTOR_RELEASE(v) \ do{ if ((v).data) free((v).data);} \ while(0)#define BLOCK_VECTOR_CLEAR(v) \ do{ \ (v).size = 0; \ } \ while(0)BLOCK_VECTOR_DEF(int);BLOCK_VECTOR_DEF(float);#endif
阅读全文
0 0
- 用c语言写 成一个vector
- 【用C语言写一个内存管理程序】
- 用C语言写的一个万年历
- 用C语言写一个的计算器
- 用C语言写一个状态机
- 用C语言写一个订座系统
- 用c语言写一个网络爬虫
- C语言写一个万年历
- 用C语言写一个类似于C++的DIB类
- 一个女生用C语言写的爱情函数
- 用C语言写一个简单的通讯录
- 一个女生用C语言写的爱情函数
- 一个女生用C语言写的爱情函数
- 一个女工程师用C语言写的爱情函数
- 用C语言写的一个小的银行管理程序
- C语言用结构体写一个通讯录
- 自己用C语言写一个简易printf
- (数据结构作业)用C语言写的一个迷宫
- hdu 1540 Tunnel Warfare(线段树)(第三部分 区间合并)
- bzoj2407 矩阵 spfa+构造
- shell字符串截取
- python之文件操作
- [leetcode]504. Base 7
- 用c语言写 成一个vector
- tcp_receive函数分析
- C语言在程序中内存
- 修改提交文件的input类型为file控件的样式
- TCP UDP IP 报头
- -----概率DP ZOJ 3822- Domination
- 4-1 单链表逆转
- obj文件格式
- 浅析H5中的WebSocket对象,创建 一个基于node的TCP网络协议的通讯协议