Sort(int a[],int left,int right)
{
int value,l,r,temp;
l=left;
r=right;
value = a[(left+right)/2];
while(l<r)
{
while(a[l]<value)
l++;
while(a[r]>value)
r--;
if(l>=r)
break;
temp = a[l];
a[l] = a[r];
a[r] = temp;
l++;
r--;
}
if(l==r)
l++;
if(left<r)
Sort(a,left,l-1);
if(l<right)
Sort(a,r+1,right);
}
posted @
2007-03-06 12:14 乔栋 阅读(192) |
评论 (0) |
编辑 收藏
1.实现一个字符串拷贝函数strcpy(char * a, char * b),b拷贝到a,用C语言实现,要求以性能为首要,请在程序中写上注释。
2.一个类拷贝的函数,要求用C写
例如:
class A {
int a;
public:
int b;
};
class B {
……
……
};
int main() {
A aa, bb;
B c, d;
a.a = 10; a.b = 20;
copyclass(???);// 将aa拷贝到bb
….
copyclass(???);// 将c拷贝到d
return 0;
}
3在一个项目中,你被分配到一个小任务:在一个字符串str中包含字符串str_a,找出所有在字符串str中的str_a,要求你架构这个功能块并且给出使用说明,代码运行健壮并且性能为首要。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1、while(*a++=*b++);
2、memcpy(&bb, &aa, sizeof(A));
memcpy(&d, &c, sizeof(B));
3、BOOL FindString(const char *src, const char *str_a)
{
char *pStart=(char *)src;
if(NULL==pStart || NULL==str_a) return FALSE;
char *pCursor=pStart;
while(pCursor=strstr(pCursor, str_a))
{
printf("find (%s) at position %ld\r\n"), str_a, pCursor-pStart);
}
return TRUE;
}
posted @
2007-03-05 17:13 乔栋 阅读(258) |
评论 (0) |
编辑 收藏
code:
typedef struct
{
SOCKET sock;
LPVOID ptr;
}PARAMRECV;
error msg:c:\documents and settings\tony\桌面\mysocket\tcpserver_ft.h(44) : error C2146: syntax error : missing ';' before identifier 'sock'
这个信息其实很典型,说明SOCKET 没有被定义,所以理所当然的应该查询SOCKET 的来源,F12发现它包换于#include "winsock.h" 之中,添加以后解决问题。
思考:
这个问题其实并不复杂,需要注意的地方有两点:
1:遇到出错信息要冷静的分析,不要害怕,不要心烦。
2:增强DEBUG技术,不单单只是调试器上的功夫,还需要认真地思考。
posted @
2007-01-30 10:44 乔栋 阅读(317) |
评论 (0) |
编辑 收藏
一个link 2019的错误,一直没有解决思路,最后解决掉,把思路记录下
error msg:
UpDlgView.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall CMarkup::~CMarkup(void)" (
__imp_??1CMarkup@@QAE@XZ) referenced in function "public: void __thiscall CUpDlgView::OnButtonadd(void)" (
?OnButtonadd@CUpDlgView@@QAEXXZ)
UpDlgView.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: bool __thiscall CMarkup::AddElem(char const *,char const *,int)" (
__imp_?AddElem@CMarkup@@QAE_NPBD0H@Z) referenced in function "public: void __thiscall CUpDlgView::OnButtonadd(void)" (
?OnButtonadd@CUpDlgView@@QAEXXZ)
UpDlgView.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall CMarkup::CMarkup(void)" (
__imp_??0CMarkup@@QAE@XZ) referenced in function "public: void __thiscall CUpDlgView::OnButtonadd(void)" (
?OnButtonadd@CUpDlgView@@QAEXXZ)
分析:
错误的类别是:unresolved external symbol ,是一个没有解决的外部变量,因为一直认为第三方类不可能有错误所以一直在自己编写的代码中寻找错误,其实错误的关键在这里:"__declspec(dllimport)" 这说明这是一个外部导出类,所以需要 将class AFX_EXT_CLASS CMarkup 改为 class CMarkUp .
posted @
2007-01-30 10:37 乔栋 阅读(599) |
评论 (0) |
编辑 收藏
1.表头控制 Header Control
2.图像列表控制 Image List
3.列表控制和视 List Control&List View
4.树控制和视 Tree Control&Tree View
5.标签控制和视 Tab Control&Tab View
6.工具条控制 Toolbar Control
7.进度条控制 Progress Control
8.滑动条控制 Slider Control
9.旋转按钮控制 Spin Button Control
10.状态条控制 Status Bar Control
http://blog.csdn.net/wangjiwei2010/archive/2006/11/24/1412714.aspx
posted @
2007-01-22 17:44 乔栋 阅读(280) |
评论 (0) |
编辑 收藏
同步/异步:
你去饭店吃饭,对服务员说:“来两碗牛肉盖饭”,然后就继续和lp聊天了,过了一会服务员把牛肉盖饭给你端了过来,这叫异步,你发了请求后继续做其他事情去了,服务员完成你的请求后告诉你盖饭好了
你去饭店吃饭,对服务员说:“来两碗拉面”,服务员告诉你:“拉面得自己排队去端”,你只好让lp占着座位自己去排队,这叫同步,你发了请求后必须等着师傅把面给你,不能离开,否则饭别人就拿走了
长/短连接:
你在和mm在打电话,但mm还在做饭,然后mm对你说:“我现在洗个碗,过两分钟打给我”,又聊了一会儿,mm又说:“过3分钟打给我”,.....这是短连接,完成一件事情后离开断开,新的传输就建立新的连接
你受不了这么频繁的拨号,你说:“我不挂机....”,这是长连接,不管有没有数据要传输,连接都要保持着
posted @
2007-01-16 09:34 乔栋 阅读(1734) |
评论 (2) |
编辑 收藏
CString->std::string 例子:
CString strMfc=“test“;
std::string strStl;
strStl=strMfc.GetBuffer(0);
std::string->CString 例子:
CString strMfc;
std::string strStl=“test“;
strMfc=strStl.c_str();
posted @
2007-01-15 17:24 乔栋 阅读(580) |
评论 (0) |
编辑 收藏
今天在使用池工给的一个配置设置文件类的时候总是报错,错误很奇怪,解决后很以外的发现,问题竟然在命名空间上.再次复习一下相关内容.
#include "stdafx.h"
#include <iostream>
using namespace std;
namespace A
{
void f(){cout<<"In A::f() function"<<endl;}
}
namespace B
{
void f(){cout<<"In B::f() function"<<endl;}
}
int main(int argc, char* argv[])
{
{
using namespace A;
f();
}
{
using namespace B;
f();
}
return 0;
}
结果是:
In A::f() function
In B::f() function
posted @
2007-01-04 16:20 乔栋 阅读(221) |
评论 (0) |
编辑 收藏
看一个仁兄的博客,不但人非常感性,技术上的细节也很细腻,我喜欢,所以收藏了他的博.
以下是
Aladdin的文章:
----- Atomic(原子性):只整个数据库事务是不可分割的工作单元。只有事务中所有的操作执行成功,才算整个事务成功;事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该退回到执行事务前的状态。通过上面的例子我们已经看得很清楚了。
----- Consistency(一致性):指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。例如,不管上面的例子里面QQ币转账的事务成功还是失败,都应该保证事务结束后qq_account表中bill和tom的QQ币总额为1000点。
----- Isolation(隔离性):指的是在并发的环境之中,当不同的事务同时操作相同的数据时,每个事务都有各自的完整数据空间,这里涉及的事情就多了,我想在后面单独总结成一篇文章。
----- Durability(持久性):指的是只有事务成功结束,它对数据库所做的更新就必须永久保存下来。即使发生系统崩溃,重新启动数据库后,数据库还能恢复到事务成功结束时的状态。达到这样的结果需要以下的方法:
----- BEGIN 事务的开始边界
----- COMMIT 事务的正常结束边界,提交事务,永久保存被事务更新后的数据库状态。
----- ROLLBACK 事务的异常结束边界,撤销事务,使数据退回到执行事务前的初始状态。
我现在给自己一个任务,明天早上给自己一个答案,问题就是:流程中在什么时候是
BEGIN ,COMMIT ,ROLLBACK 的状态.
posted @
2006-12-28 17:17 乔栋 阅读(201) |
评论 (0) |
编辑 收藏
[windows]
load=
run=
NullPort=None
[Desktop]
WallpaperStyle=2
Pattern=(无)
[intl]
s2359=PM
iCountry=86
……
配置文件把信息分成若干"节",节标题放在方括号中,如[Desktop]就是Desktop节,在一个节内包含了一些与之相关相近的"项",并通过等号对其进行赋值。
其中VALUE值可以有两种类型:数值型和字符串型,而且Windows操作系统专门为此提供了6个API函数来对配置设置文件进行读、写:
GetPrivateProfileInt() 从私有初始化文件获取整型数值
GetPrivateProfileString() 从私有初始化文件获取字符串型值
GetProfileInt 从win.ini 获取整数值
GetProfileString 从win.ini 获取字符串值
WritePrivateProfileString 写字符串到私有初始化文件
WriteProfileString 写字符串到win.ini
在这里需要指出:当向配置文件存储信息时,不论是数据还是字符串都要先转换成字符串,然后再行存储。
posted @
2006-12-28 14:38 乔栋 阅读(1501) |
评论 (0) |
编辑 收藏