天嵌二次封装库使用手册  V1.0
cvector.h
1 # ifndef __CVECTOR_H__
2 # define __CVECTOR_H__
3 
4 # include <stdio.h>
5 # include <stdlib.h>
6 # include <string.h>
7 
8 # define MIN_LEN 256
9 # define CVEFAILED -1
10 # define CVESUCCESS 0
11 # define CVEPUSHBACK 1
12 # define CVEPOPBACK 2
13 # define CVEINSERT 3
14 # define CVERM 4
15 # define EXPANED_VAL 1
16 # define REDUSED_VAL 2
17 
18 typedef void *citerator;
19 typedef struct _cvector *cvector;
20 
21 # ifdef __cplusplus
22 extern "C" {
23 # endif
24 
25  cvector cvector_create (const size_t size );
26  void cvector_destroy (const cvector cv );
27  size_t cvector_length (const cvector cv );
28  int cvector_pushback (const cvector cv, void *memb );
29  int cvector_popback (const cvector cv, void *memb );
30  size_t cvector_iter_at (const cvector cv, citerator iter );
31  int cvector_iter_val (const cvector cv, citerator iter, void *memb);
32  citerator cvector_begin (const cvector cv );
33  citerator cvector_end (const cvector cv );
34  citerator cvector_next (const cvector cv, citerator iter );
35  int cvector_val_at (const cvector cv, size_t index, void *memb );
36  int cvector_insert (const cvector cv, citerator iter, void *memb);
37  int cvector_insert_at(const cvector cv, size_t index, void *memb );
38  int cvector_update_at(const cvector cv, size_t index, void *memb );
39  int cvector_rm (const cvector cv, citerator iter );
40  int cvector_rm_at (const cvector cv, size_t index );
41 
42  /* for test */
43  void cv_info (const cvector cv );
44  void cv_print (const cvector cv );
45 
46 # ifdef __cplusplus
47 }
48 # endif
49 
50 #endif /* EOF file cvector.h */
51