当前位置:  编程技术>c/c++/嵌入式
本页文章导读:
    ▪列出所有K个元素的子集-----2013年1月26日            问题描述:列出一个集合的元素个数为k的所有子集。      思路:在字典顺序列出所有子集的基础上判断元素个数就可以了,比较简单。代码如下: 1 #include <stdio.h> 2.........
    ▪C/C++跨平台计时,精确到毫秒级别      在c/c++代码中,有时需要实现计时功能,比如某个时刻开始计时,然后到另一时刻时,计算距开始计时的时刻毫秒数。 通过在起始时刻和停止时刻分别调用下面的代码,返回的时间相减,.........
    ▪数据库通用访问接口设计与实现(C++)        由于项目的需要,我们需要连接许多类型的数据库。同时我们希望对数据库的操作能够提供一个统一的访问接口。现在网上有不少开源的,但是对于用惯了VC ADO的人来说,这些接口设计.........

[1]列出所有K个元素的子集-----2013年1月26日
    来源:    发布时间: 2013-10-17

      问题描述:列出一个集合的元素个数为k的所有子集。

      思路:在字典顺序列出所有子集的基础上判断元素个数就可以了,比较简单。代码如下:

1 #include <stdio.h>
2 #define MAX 1000
3
4 int main()
5 {
6 int n=5;
7 int set[MAX]={1};
8 int index=0;
9 int count=2;
10 int k=3;
11 while(set[0]!=n)
12 {
13 if(set[index]<n)
14 {
15 set[index+1]=set[index]+1;
16 index++;
17 }
18 else
19 {
20 index--;
21 set[index]++;
22 }
23 int a_index;
24 count++;
25 if(index==k-1)
26 {
27 printf("%d:{",count);
28 for(a_index=0;a_index<=index;a_index++)
29 printf("%d ",set[a_index]);
30 printf("}\n");
31 }
32 }
33 return 0;
34 }

       参考资料:《C语言名题精选百则技巧篇》

       如果你觉得我的文章对你有帮助,请推荐一下,非常感谢!

本文链接


    
[2]C/C++跨平台计时,精确到毫秒级别
    来源:    发布时间: 2013-10-17

在c/c++代码中,有时需要实现计时功能,比如某个时刻开始计时,然后到另一时刻时,计算距开始计时的时刻毫秒数。
 
通过在起始时刻和停止时刻分别调用下面的代码,返回的时间相减,便可获得这段时间的毫秒数,其跨Windows、Linux、VxWorks三个平台。

具体来说:起始时刻为类的构造函数,停止时刻为类的析构阶段。

#ifdef WIN32
#define OS_WINDOWS WIN32
 

#include <windows.h>
#endif
#ifdef LINUX
#include <unistd.h>
#include <sys/time.h>
#include <netinet/in.h>
#endif
#ifdef VXWORKS
#include "vxworks.h"
#include <tickLib.h>
#include <sysLib.h>
#endif

#define ULONAG unsigned long

ULONGA getTickCount(void)
{
ULONGA currentTime;
#ifdef WIN32
currentTime = GetTickCount();
#endif
#ifdef LINUX
struct timeval current;
gettimeofday(&current, NULL);
currentTime = current.tv_sec * 1000 + current.tv_usec/1000;
#endif
#ifdef OS_VXWORKS
ULONGA timeSecond = tickGet() / sysClkRateGet();
ULONGA timeMilsec = tickGet() % sysClkRateGet() * 1000 / sysClkRateGet();
currentTime = timeSecond * 1000 + timeMilsec;
#endif
return currentTime;
}

 

本文链接


    
[3]数据库通用访问接口设计与实现(C++)
    来源:    发布时间: 2013-10-17

 

由于项目的需要,我们需要连接许多类型的数据库。同时我们希望对数据库的操作能够提供一个统一的访问接口。现在网上有不少开源的,但是对于用惯了VC ADO的人来说,这些接口设计的感觉真是有点反人类。比较好用的有一个人SQLAPI++,但是是要收费的,破解版的也没有源代码,那种代码无法掌握在自己手里的感觉,总是感觉不爽。于是便自己开始写一个。

根据初步的设计,有了以下的一个模型:

这个只是一个初步的模型。具体的实现中,主要有两个类,一个是CDbConnect和CDbRecordSet。这两个类主要是提供了访问接口。同时还有一个CDbFactory为了构建CDbConnect对象,这个类中主要是一系列的静态函数。

目前该功能已经完全实现,暂时支持的数据库有MS SQL/Oracle/Postgresql/sqlite,其他的需要支持在以后来添加,个人觉得拓展性还是很强的。

主要的三个对外接口的类设计如下:

 

 

 

第一次用这个,发现贴图很蛋疼,接下来我会接着更新,代码也会给出来,希望大家一起交流,写一个好的DbConnect。

本文链接


    
最新技术文章:
▪C++单例模式应用实例
▪C++设计模式之迭代器模式
▪C++实现动态分配const对象实例
▪C++设计模式之中介者模式
▪C++设计模式之备忘录模式
▪C++插入排序算法实例
▪C++冒泡排序算法实例
▪C++选择排序算法实例
▪C++归并排序算法实例
▪C++设计模式之观察者模式
▪C++中复制构造函数和重载赋值操作符总结
▪C++设计模式之状态模式
▪C++设计模式之策略模式
▪C++设计模式之访问者模式
▪C++设计模式之模板方法模式
▪C++实现下载的代码
▪C++模板之特化与偏特化详解
▪C++实现查壳程序代码实例
▪C语言、C++内存对齐问题详解
▪C++模板之特化与偏特化详解 iis7站长之家
▪C++基于CreateToolhelp32Snapshot获取系统进程实例
▪C++中memcpy和memmove的区别总结
▪C++通过TerminateProess结束进程实例
▪C++内存查找实例
▪C++实现CreatThread函数主线程与工作线程交互的...
▪C++设计模式之桥接模式
▪C++中关键字Struct和Class的区别
▪C++设计模式之组合模式
▪C++ COM编程之什么是组件?
▪C++ COM编程之什么是接口?
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3