对 Switch 的一次思考 于3年前弃用 CSDN, 现在原谅我先再骂一次 CSDN 这垃圾. 辛辛苦苦写了3小时的博文, 一路保存草稿都是生怕文章没了 .. 结果点击发布过后全没了.. 竟然是因为在文章开始用了一个 这个表情.. 一个 unicode 字符表情导致后面的内容全被过滤也是666, 关键是保存啥的全都提示成功... 然而内容全无.. 好了, 总之在别人的地盘上骂它显得有点不好. 忍住... 忍住 .... 草...
不使用 if、for 等逻辑关键字实现累加求和 今天回来就听室友说他做的面试题,不能使用if、for、switch等关键字来实现累加,一开始还觉得的确有点考人,就像脑经急转弯,没转过去就挂了~~不过很快应该就能想到一种比较好的方案,这里面肯定要出现逻辑判断,既然不能使用if 等,而且递归又是比较好的选择,所以有了如下方案~拿出来和大家分享一下,希望有用得着的朋友可以看看,或者提供更好的思路,以下只是个人方案:int sum(int i) {
找出矩阵中的最大矩形 //找出矩阵中由 1 组成的最大的矩形,#include "stdafx.h"#include "iostream"using namespace std;int find_1(int **p, int nRow, int nCol);int find_Rect(int **p, int x, int y, int nRow, int nCol);int main(){ int
CCF-2015-9-13-04 下题为个人做法,只做参考。二维数组第三个为状态,表示是否已经访问过该条路径。/*国王给城市修路,两个城市互相有路则为便利城市,路则为便利路,求便利路的条数。第一行输入两个数字m,n ;m 为城市数量,n为路的总数;接下来的n行每行输入两个数i,j : 表示i->j为一条通路最后为一行输出,表示便利路的条数。*/#include "iostream"using namespac
线程同步之事件同步 使用事件同步,主要是一个事件句柄和五个函数:HANDLE g_hEvent = NULL;g_hEvent = CreateEvent(NULL, FALSE, TRUE, L"Test Event");WaitForSingleObject(g_hEvent, INFINITE);SetEvent(g_hEvent); ResetEvent(g_hEvent);C
线程同步之信号量 使用信号量主要一个信号量句柄是下面四个函数:HANDLE g_hSem = NULL;g_hSem = CreateSemaphore(NULL, 2, 0x4, L"Test Sem");WaitForSingleObject(g_hSem, INFINITE);//INFINITE为一直等待,不设置等待超时ReleaseSemaphore(g_hSem, 1, NU
线程同步之锁定临界区 对于临界区,最长使用到的一个结构体以及四个函数分别为:CRITICAL_SECTION g_criSec;InitializeCriticalSection(&g_criSec); //初始化临界区,一个临界区只需要初始化一次。EnterCriticalSection(&g_criSec);//进入临界区LeaveCriticalSection(&g_criSec);//离开临
windows编程之进程通信:内存共享 发送端:////////可放在消息循环之前void initsharedmemory() { g_filemap = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_EXECUTE_READWRITE, 0, 255, L"shared memory");//最后一个参数为共享内存的标志,就像在系统中注册的窗口类有自己的类名一样,调用的
windows编程之剪切板 进程通信的方式很多,可以通过套接字,管道,内存共享,WM_COPYDATA消息,当然剪切板也是一种方式,并且在以后的环节还可能用得比较多。使用剪切板的步骤主要是: 打开剪切板,发送端代码大概如下:HWND hEdit = GetDlgItem(hwnd, IDC_EDIT_INPUT);TCHAR szEdit[100] = { 0 };GetWindowText(hEdit, s
C/C++手动构造ARP包并发送至网络 所选题目:1. 在熟悉ARP协议并了解Winpcap编程的前提下,构造ARP包,选择并打开网卡,将ARP包发送出去。运行格式:程序名源IP地址目的IP地址目的MAC地址flag源 IP 目的IP 源MAC FLAG( flag=0: ARP请求flag=1: ARP应答) 1.要求及功能按照题目要求,成功发送ARP包到网络( flag=0: AR
关于lib 和 dll 个人学习总结 首先,我先推荐一篇个人觉得比较好的文章:http://www.cppblog.com/amazon/archive/2009/09/04/95318.html写了一个测试的dll,工程名为 Dll001 .添加头文件,添加cpp, 如取名为 Mytestdll头文件如下:#include "stdafx.h"#include "stdio.h"#ifndef MY_
函数适配器bind2nd 函数适配器 bind2nd 和 bind1st 两者差别在于内部参数调用顺序不同。我们完全可以自己写一个函数适配器。为了泛化,可以做成模板。#include "stdafx.h"#include "stdio.h"#include "vector"#include "algorithm"#include "functional"using std::vector;clas
函数指针强制类型转换 #include "stdafx.h"#include "stdio.h"#include "vector"using std::array;using std::vector;void Print(int n,int nn){ fprintf(stdout, "%d\t", n);}typedef void(*P)(int);P p=(P) Print;int main(
二维数组转指针时可能会遇到的问题 关于int t[2][2] = { 1,2,3,5 };int ** p = (int**)t;这种写法,执行过后,会出现 p[0]=1;p[1]=2;p[2]=3;p[3]=5;这种情况。也许有朋友会不理解。肯定很多初学者会认为 p[0][0]=1 而不是 p[0] =1; 其实不然,此时如果调用 p[0][0] 将会出错。因为 p[0]=0;然后 p