设为首页 加入收藏

TOP

基于stl序列容器实现的通用集合类 (三)
2014-11-23 22:30:31 来源: 作者: 【 】 浏览:8
Tags:基于 stl 序列 容器 实现 通用 集合
比如元素类型是_variant_t类型,代码描述如下
1#ifndef _VARIANT_COLLECTION_H
2#define _VARIANT_COLLECTION_H
3
4#include
5#pragma comment(lib,"comsuppw.lib")
6
7class variant_collection : public STLCollection<_variant_t>
8{
9 typedef STLCollection<_variant_t> base;
10
11public:
12 using base::add;
13 using base::insert;
14 using base::set;
15
16 void add(signed char val)
17 {
18 add(val);
19 }
20 void add(unsigned char val)
21 {
22 add(val);
23 }
24 void add(short val)
25 {
26 add(val);
27 }
28 void add(unsigned short val)
29 {
30 add(val);
31 }
32 void add(int val)
33 {
34 add(val);
35 }
36 void add(unsigned int val)
37 {
38 add(val);
39 }
40 void add(float val)
41 {
42 add(val);
43 }
44 void add(double val)
45 {
46 add(val);
47 }
48 void add(const char* val)
49 {
50 add(val);
51 }
52
53 void insert(size_t index,signed char val)
54 {
55 insert(index,val);
56 }
57 void insert(size_t index,unsigned char val)
58 {
59 insert(index,val);
60 }
61 void insert(size_t index,short val)
62 {
63 insert(index,val);
64 }
65 void insert(size_t index,unsigned short val)
66 {
67 insert(index,val);
68 }
69 void insert(size_t index,int val)
70 {
71 insert(index,val);
72 }
73 void insert(size_t index,unsigned int val)
74 {
75 insert(index,val);
76 }
77 void insert(size_t index,float val)
78 {
79 insert(index,val);
80 }
81 void insert(size_t index,double val)
82 {
83 insert(index,val);
84 }
85 void insert(size_t index,const char* val)
86 {
87 insert(index,val);
88 }
89
90 void set(size_t index,signed char val)
91 {
92 set(index,val);
93 }
94 void set(size_t index,unsigned char val)
95 {
96 set(index,val);
97 }
98 void set(size_t index,short val)
99 {
100 set(index,val);
101 }
102 void set(size_t index,unsigned short val)
103 {
104 set(index,val);
105 }
106 void set(size_t index,int val)
107 {
108 set(index,val);
109 }
110 void set(size_t index,unsigned int val)
111 {
112 set(index,val);
113 }
114 void set(size_t index,float val)
115 {
116 set(index,val);
117 }
118 void set(size_t index,double val)
119 {
120 set(index,val);
121 }
122 void set(size_t index,const char* val)
123 {
124 set(index,val);
125 }
126
127protected:
128 template
129 void add(T val)
130 {
131 _variant_t var(val);
132 base::add(var);
133 }
134 template
135 void insert(size_t index,T val)
136 {
137 _variant_t var(val);
138 base::insert(index,var);
139 }
140 template
141 void set(size_t index,T val)
142 {
143 _variant_t* p_var = base::get(index);
144 if (p_var) *p_var = val;
145 }
146};
147
148#endif

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇pipe 函数 (C语言) 下一篇HDU 1102 Constructing Roads

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: