打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C++ 函数库积累
1、C++ 中实现realloc(浅复制、深复制)
C++没有函数能够替代realloc,只有在C++中把原来的空间delete掉,再重新new一个
 template<typename   T>     T*   realloc(T*   &p,size_t   oldsize,size_t   newsize){           T*   tmp=new   T[newsize];           memcpy(tmp,p,oldsize*sizeof(T));           delete   []p;           return   p=tmp;     }     int   main(){     int*   p=new   int[5];     for(int   i=0;i<5;i++)   p[i]=i;     realloc(p,5,15);     }
2、求系统时间的差值
#define NOMINMAX#include <algorithm>#include <windows.h>SYSTEMTIME systemtime_difference(SYSTEMTIME const& st1, SYSTEMTIME const& st2){	FILETIME ft1;	SystemTimeToFileTime(&st1, &ft1);	ULARGE_INTEGER const u1 = { ft1.dwLowDateTime, ft1.dwHighDateTime };	FILETIME ft2;	SystemTimeToFileTime(&st2, &ft2);	ULARGE_INTEGER const u2 = { ft2.dwLowDateTime, ft2.dwHighDateTime };	ULARGE_INTEGER u3;	u3.QuadPart = std::max(u1.QuadPart, u2.QuadPart) - std::min(u1.QuadPart, u2.QuadPart);	FILETIME const ft3 = { u3.LowPart, u3.HighPart };	SYSTEMTIME st3;	FileTimeToSystemTime(&ft3, &st3);	// FILETIME's starting point is 1601-01-01	st3.wYear -= 1601;	st3.wMonth -= 1;	st3.wDay -= 1;	st3.wDayOfWeek = 0; // useless for this purpose, make it always 0 so it's always ignored	return st3;}
测试代码:
int main(){	SYSTEMTIME const st1 = { 2008, 10, 3, 15, 6, 5, 31, 12 };	SYSTEMTIME const st2 = { 2009, 12, 0, 27, 10, 7, 59, 56 };	SYSTEMTIME st3 = systemtime_difference(st1, st2);	return 0;}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
CFileFind用法
FileTime 和 CTime之间的转换问题
Windows中的时间(SYSTEMTIME和FILETIME)(转)
Windows API的时间结构体、时间转换及时间获取
C/C++获取系统时间
UTC转换本地时间
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服