长寿梦的编程日常
2007年开始编程生涯,迄今已通多种语言,未来以期计算机技术结合某一专业领域,传授智慧给计算机智能辅助改进某一行业,成为顶级的领域处理专家。
C++博客
|
首页
|
发新随笔
|
发新文章
|
|
聚合
|
管理
随笔:86 文章:37 评论:48 引用:0
STL-----CArray模板类的实现
/**/
/*
*********************************************************************************
自定义CArray模板类:动态数组类
*/
template
<
class
T
>
class
CMyArray
{
public
:
//
构造
CMyArray(
int
num
=
4
)
{
m_data
=
new
T[num];
m_count
=
0
;
m_Size
=
num;
}
//
析构
virtual
~
CMyArray()
{
if
(m_data)
delete [] m_data;
}
//
方法
public
:
int
Add(T
&
data);
T
&
operator
[](
int
nIndex );
T GetAt(
int
nIndex )
const
;
void
SetAt(
int
nIndex, T
&
data );
void
RemoveAt(
int
nIndex,
int
nCount
=
1
);
int
GetSize( )
const
{
return
m_count;}
private
:
void
ReAlloc();
//
属性
private
:
T
*
m_data;
int
m_Size;
//
Array总的尺寸:=largest index+1
int
m_count;
//
当前内容
}
;
/**/
/*
*************************************************************************
几个重要方法的实现部分
*/
template
<
class
T
>
int
CMyArray
<
T
>
::Add(T
&
data)
{
if
(m_count
>=
m_Size)
{
ReAlloc();
}
m_data[m_count
++
]
=
data;
return
m_count;
}
//
重新分配内存
template
<
class
T
>
void
CMyArray
<
T
>
::ReAlloc()
{
int
len
=
m_Size
*
2
+
1
;
T
*
p
=
new
T[len];
//
扩展了一倍内存
memcpy(p,m_data,m_Size
*
sizeof
(T));
delete m_data;
m_data
=
p;
m_Size
=
len;
}
//
重载
template
<
class
T
>
T
&
CMyArray
<
T
>
::
operator
[](
int
nIndex)
{
assert(nIndex
<
m_count
||
nIndex
>
0
);
return
m_data[nIndex];
}
//
得值
template
<
class
T
>
T CMyArray
<
T
>
::GetAt(
int
nIndex )
const
{
assert(nIndex
<
m_count
||
nIndex
>
0
);
return
m_data[nIndex];
}
//
设值
template
<
class
T
>
void
CMyArray
<
T
>
::SetAt(
int
nIndex, T
&
data)
{
assert(nIndex
<
m_Size
||
nIndex
>
0
);
m_data[nIndex]
=
data;
}
//
移除
template
<
class
T
>
void
CMyArray
<
T
>
::RemoveAt(
int
nIndex,
int
nCount)
{
assert(nIndex
+
nCount
-
1
<
m_count
||
nIndex
>
0
);
memcpy(m_data
+
nIndex,m_data
+
nIndex
+
nCount,(m_count
-
nIndex
-
nCount)
*
sizeof
(T));
m_count
--
;
}
发表于 2010-05-08 10:04
长寿梦
阅读(1077)
评论(0)
编辑
收藏
引用
所属分类:
C/C++语言
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
使用valgrind, VLD做内存泄漏的检查
针对libzip库,封装了两个接口,compressString 压缩字符串
破解广州交管所验证码之主流程
如果一个无序的序列里,有且有一个值,出现了重复。那么如何以N的复杂度找出这个重复值
服务端的白名单里允许局域网ip通过的方法
GO语言学习笔记1
收到apns推送重复消息的解决
(转)关于sizeof(class)的学习
读写锁与互斥锁
内存泄露检测
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
<
2024年11月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔分类
(81)
C/C++语言(21)
(rss)
java(2)
(rss)
Linux系统(6)
(rss)
python片段(17)
(rss)
windows编程(5)
(rss)
分布式与存储(7)
(rss)
数据结构与算法(4)
(rss)
网络开发基础(18)
(rss)
音视频编解码(1)
(rss)
随笔档案
(86)
2017年1月 (1)
2016年12月 (2)
2016年10月 (2)
2016年8月 (1)
2016年7月 (2)
2016年6月 (3)
2016年5月 (1)
2016年4月 (2)
2015年9月 (1)
2015年7月 (2)
2015年6月 (1)
2015年5月 (1)
2015年4月 (3)
2015年2月 (5)
2015年1月 (3)
2014年12月 (1)
2014年11月 (2)
2014年10月 (1)
2014年9月 (1)
2014年8月 (5)
2014年7月 (4)
2014年6月 (1)
2014年5月 (1)
2014年4月 (3)
2013年8月 (1)
2013年7月 (1)
2012年11月 (1)
2012年8月 (1)
2012年6月 (1)
2012年5月 (2)
2011年8月 (2)
2010年9月 (4)
2010年7月 (5)
2010年5月 (19)
文章分类
(34)
C/C++知识点总结(4)
(rss)
IT人生总结(3)
(rss)
Linux总结(5)
(rss)
Windows编程总结(8)
(rss)
数据结构总结(3)
(rss)
网络开发总结(11)
(rss)
文章档案
(37)
2014年5月 (1)
2012年6月 (1)
2010年8月 (1)
2010年7月 (1)
2010年5月 (10)
2010年4月 (7)
2010年2月 (16)
c++博客
cppprog
VC交流
百度c++博客01
孔令春's Blog
技术论坛
CCSDN
CSDN技术论坛
幽幽文档
网络安全和黑客技术
网络安全焦点
资源
开发网
搜索
积分与排名
积分 - 417482
排名 - 54
最新评论
1. re: python实现的LAN文件传输服务
能请教下博主是怎么学习的么?方法论之类的传授一下
--小海
2. re: 破解某城市的验证
学好IT好就业选硅谷IT,学技能拿文凭事半功倍,紧跟专业教师一起冲浪IT行业。我们有建设学习型专业师资团队,教师领跑学生紧随其后。(QQ:800015777,电话0754-88989555)
--sdff
3. re: 基于TCP,多线程的聊天框架代码
头文件#include"stdafx.h"能借我看看不?
--琴
4. re: 定时刷新页面,比如定时拉取你所关注的股票行情
功能收了 谢谢
--mmocake
5. re: 关于自己写linux c++的网络服务的tps上限的一次不严格的测试
这里只是把一个核心跑满了。记录。
--长寿梦
6. re: 关于自己写linux c++的网络服务的tps上限的一次不严格的测试
评论内容较长,点击标题查看
--Irons
7. re: 使用MFC类库进行socket编程的入门实例
有完整的吗,刚入门的,,
--nlgcf
8. re: 高性能服务端编程知识点梳理图解
不错。
--liyou
9. re: 高性能服务端编程知识点梳理图解
很不错
--胡满超
10. re: VC下ADO数据库操作的封装类
评论内容较长,点击标题查看
--lenhoon
11. re: 高性能服务端编程知识点梳理图解
学习~ mark~ 工作上,自己独立从头开始写一个服务程序能有8个月了,苦于之前没人系统教我啊,好苦逼~
--苗永超
12. re: 高性能服务端编程知识点梳理图解
学习了,感谢分享
--任务易
13. re: 收到apns推送重复消息的解决
嗯;我观察是这样的。试想,apns推送的速度,应该与provider产生请求的速度不一致吧? 求有经验人提供建议。@满载的骆驼
--长寿梦
14. re: 收到apns推送重复消息的解决
经过测试发现,即便provider产生大量推送请求,apns推送给iPhone的时间间隔大约为3s。
有这种事?
--满载的骆驼
15. re: 利用RichEdit控件显示word文档
看看往事
--邢盼
16. re: 使用MFC类库进行socket编程的入门实例
少了好多内容都没说,按照上面的来做,能做出来就是神了
--wpp
17. re: 一个使用CSocket类的网络通信实例
评论内容较长,点击标题查看
--t
18. re: 使用MFC类库进行socket编程的入门实例
博主还在吗,各种打滚求啊
--mangtu
19. re: 使用MFC类库进行socket编程的入门实例
添加变量的表呢???求回复
--mangtu
20. re: VC下ADO数据库操作的封装类[未登录]
学习,感谢了
--Bob
21. re: 消息处理线程
你太生猛了
--wumn29
22. re: 木马基础知识梳理
学习了
--岁月漫步
23. re: 木马基础知识梳理
这个好,可以普及一下。
--jc_ontheroad
24. re: vs2003安装步骤与可能问题的解决
开发环境只是选择问题,用得着鄙视吗?你家旧代码不用维护的啊
--nscboy
25. re: vs2003安装步骤与可能问题的解决
真心鄙视还在VC6,2003什么的
基本都是懒于移植代码或不接受新事物的人
--路过
26. re: vs2003安装步骤与可能问题的解决
安装的时候会遇到过这种问题的 收藏了
--tb
27. re: vs2003安装步骤与可能问题的解决
vs2003,怎么的,都该淘汰了吧
--right
28. re: 基于TCP,多线程的聊天框架代码[未登录]
#include "stdafx.h"
头文件借我看看吧
--奇奇
29. re: 一个使用CSocket类的网络通信实例
评论内容较长,点击标题查看
--李弢
30. re: 套接字select模型
主线程与工作线程之间没有进行同步,这样没问题吗
--HammerMin
31. re: VC下ADO数据库操作的封装类
学习了
--kailen
32. re: 读写锁与互斥锁
类图没看懂。
--他她女鞋
33. re: 基于TCP,多线程的聊天框架代码
我搞论文,盗版下你的,嘿嘿,麻烦你了
--徐睿
阅读排行榜
1. python AES PKCS7填充 加解密(18935)
2. 一个启动服务的SHELL脚本(18578)
3. 定时刷新页面,比如定时拉取你所关注的股票行情(18254)
4. mongodb的主从测试与复制集测试的实验(附带测试的配置文件)(18202)
5. mongodb的测试报告(18092)
6. 测试SESSION分配与浏览器的关系(17859)
7. 针对libzip库,封装了两个接口,compressString 压缩字符串(17695)
8. im的难点(16612)
9. 破解某城市的验证(15056)
10. mysql库表的导出 导入(14792)
11. GCC -O 优化选项的一次测试(14641)
12. 使用valgrind, VLD做内存泄漏的检查(13463)
13. VC下ADO数据库操作的封装类(9898)
14. 一个使用CSocket类的网络通信实例(8890)
15. 基于TCP,多线程的聊天框架代码(8070)
16. 装scipy或者numpy时弹出python2.7 was not found in the registry 的解决办法: python的注册与注销方法(6728)
17. 套接字select模型(6396)
18. 读写锁与互斥锁(4675)
19. Socket类自封装的实现(4650)
20. 高性能服务端编程知识点梳理图解(4391)
21. vs2003安装步骤与可能问题的解决(4230)
22. CPU三种工作模式总结(3705)
23. C接口代码封装(3444)
24. 基于TCP的通讯程序----基本框架(3441)
25. 收到apns推送重复消息的解决(3432)
26. apns丢消息问题的解决(3077)
27. 关于自己写linux c++的网络服务的tps上限的一次不严格的测试(2546)
28. 几道笔试题(2500)
29. FTP原理介绍(2459)
30. 问题:linux有时候通过tcp传输获取得到的mysql的字段中文内容是乱码?(2382)
31. curl url 自动解析到内网IP(2321)
32. 木马基础知识梳理(2304)
33. python实现的LAN文件传输服务(2281)
评论排行榜
1. 基于TCP,多线程的聊天框架代码(8)
2. VC下ADO数据库操作的封装类(5)
3. vs2003安装步骤与可能问题的解决(4)
4. 高性能服务端编程知识点梳理图解(4)
5. Socket类自封装的实现(3)
6. 一个使用CSocket类的网络通信实例(2)
7. 木马基础知识梳理(2)
8. 关于自己写linux c++的网络服务的tps上限的一次不严格的测试(2)
9. 收到apns推送重复消息的解决(2)
10. 定时刷新页面,比如定时拉取你所关注的股票行情(1)
11. 破解某城市的验证(1)
12. python实现的LAN文件传输服务(1)
13. 读写锁与互斥锁(1)
14. 几道笔试题(1)
15. 套接字select模型(1)
16. CButtonST使用技巧: CButtonST简介(1)
17. C中如何调用C++函数?(1)
18. STL----CList模板类实现(0)
19. STL-----CArray模板类的实现(0)
20. (代码) _findfirst 实现依照名册检查作业提交情况(0)
21. 进制转换,逆序输出(0)
22. 基于TCP的通讯程序----基本框架(0)
23. 基于UDP的通讯程序代码(0)
24. 网络信息获取函数应用实例(0)
25. 套接口属性设置和获取实例(0)
26. 八皇后问题(0)
27. ftp命令行基本操作(0)
28. FTP原理介绍(0)
29. 服务器端登陆机制的 实现模块(0)
30. 子字符串匹配(0)
31. 对链表的综合操作(0)
32. 五种程序设计方法(0)
33. 几个C库函数的源码(0)