c/c++
hotmocha
这个作者很懒,什么都没留下…
展开
-
关于C++ 字节对齐
从union的sizeof问题看cpu的对界 考虑下面问题:(默认对齐方式) union u{ double a; int b;}; union u2{ char a[13]; int b;}; union u3{ char a[13]; char b;}; coutcoutcout转载 2012-02-27 10:57:17 · 360 阅读 · 0 评论 -
1025-Wooden Sticks
经典的最长上升子序列:O(m*m) ---> O(m*logm)#include #includeusing namespace std; int cases;struct Node{ int L,W; bool operator<(const Node &node) const { if(L!=node.L) return (L<node.L); else原创 2012-07-20 18:39:53 · 492 阅读 · 0 评论 -
1005 Jugs-zju
也是一道DFS的题目,但是要注意保存搜过的状态,不然会死循环的!!!#include #include#include#includeusing namespace std; vector v;//a->b :'A' , b->a:'B' , fill a: 'C' , fill b: 'D' , empty a:'E', empty b:'F' vector reca,re原创 2012-07-20 18:44:03 · 445 阅读 · 0 评论 -
STL中的全排列 --好玩
#include #include using namespace std; int main() { 屏幕剪辑的捕获时间: 2012-5-31 9:45 int a[3]={1,2,3}; int i; do { for(i=0;i<=2;i++) printf("%d ",a[i]);原创 2012-07-20 18:51:30 · 383 阅读 · 0 评论 -
程序员自我修养-是否真的要main函数??
首先c语言程序是否真的需要一个main函数?double foo(){ return 1.0;}double g=foo();int main(){ return0;}在main函数之前,程序启动器帮我们初始化好了g这个全局变量。void foo(){ printf("foo\n");}int main(){ atexit(&foo);原创 2012-07-20 11:22:35 · 3323 阅读 · 1 评论 -
Anagrams by Stack--zju
Sample InputmadamadammbahamabahamalongshortericriceSample Output[i i i i o o o i o oi i i i o o o o i oi i o i o i o i o oi i o i o i o o i o][i o i i i o o i i o o o原创 2012-07-20 18:48:25 · 436 阅读 · 0 评论 -
Fire Net
以前本科的时候打死没有写出来,现在可以了。。。。#include#includeusing namespace std;string map[5];int n;bool CanPut(int i,int j){ for(int k=i-1;k>=0;k--) { if(map[k][j]=='#') return false; else if(map[k][j]=原创 2012-07-20 18:49:20 · 640 阅读 · 0 评论 -
Windows消息编程
转载地址: http://www.vckbase.com/index.php/wv/1593本文主要包括以下内容:1、简单理解Windows的消息2、通过一个简单的Win32程序理解Windows消息3、通过几个Win32程序实例进一步深入理解Windows消息4、队列消息和非队列消息5、WM_COMMAND和WM_NOTIFY6、MFC的消息映射7、消息反射机制转载 2012-07-21 16:26:16 · 987 阅读 · 0 评论 -
什么是lib文件,lib和dll的关系如何
(1)lib是编译时需要的,dll是运行时需要的。如果要完成源代码的编译,有lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调试阶段,当然最好都有。(2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中。如转载 2012-07-19 11:04:24 · 466 阅读 · 0 评论 -
程序员自我修养--window中的线程基础问题
线程的访问权限:多线程运行库:1. c语言必须提供多线程的API2. 有些函数之前设计并不适合多线程,需要改进Errno,strtok,malloc,new,printf,异常处理等等多线程都是不安全的在多线程中CRT的改进: CRT改进:1. 使用TLS,比如errno在单线程版本中直接返回全局的errno,但是在多线程中返回原创 2012-07-28 09:55:31 · 738 阅读 · 0 评论 -
C++虚函数的实现
前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不转载 2012-07-30 18:51:04 · 638 阅读 · 0 评论 -
负载均衡器&http正向代理
透明的负载均衡器&http正向代理* master-workers架构,http正向代理由独立的dns请求以及缓冲进程 * 使用epoll(ET)模式,采用全异步方式(双缓存,实现双向同时转发);* 事件管理机制(事件池,事件对象分离)* 使用红黑树超时管理* 灵活且简单的配置文件* 多种可配置负载均衡的算法* 实现可以多个分组同时负载* 不间断在线配置参数功能原创 2015-07-01 14:29:36 · 718 阅读 · 0 评论 -
程序员自我修养-CRT中的多线程
线程的访问权限: 多线程运行库:1. c语言必须提供多线程的API2. 有些函数之前设计并不适合多线程,需要改进Errno,strtok,malloc,new,printf,异常处理等等多线程都是不安全的在多线程中CRT的改进: CRT改进:1. 使用TLS,比如errno在单线程版本中直接返回全局的errno,但是在多线程中返原创 2012-07-20 10:58:21 · 3300 阅读 · 0 评论 -
1008-Gnome Tetravex -zju
经典的DFS,注意使用map[MAX_NODE][MAX_NODE]保存地图:#include #includeusing namespace std; struct Node{ int top,right,buttom,left; bool operator==(const Node &temp) { return (temp.top==top && temp.righ原创 2012-07-20 18:42:05 · 516 阅读 · 0 评论 -
getchar的返回值问题
许多初学者都习惯用 char 型变量接收 getchar、getc,fgetc 等函数的返回值,其实这么做是不对的,并且隐含着足以致命的错误。getchar 等函数的返回值类型都是 int 型,当这些函数读取出错或者读完文件后,会返回 EOF。EOF 是一个宏,标准规定它的值必须是一个 int 型的负数常量。通常编译器都会把 EOF 定义为 -1。问题就出在这里,使用 char 型变量接收转载 2012-03-03 11:12:20 · 662 阅读 · 0 评论 -
变长参数的使用
5.4 函数的变长参数文件的格式化输入输出函数都支持变长参数。定义时,变长参数列表通过省略号"…"表示,因此,具有变长参数列表的函数定义格式为:type 函数名(参数1, 参数2, 参数n, ...);其中type为函数的返回值类型,参数1~参数n为定长参数,"..."代表变长参数,注意"..."必须定义在参数的最右端。如下例:int printf(co转载 2012-03-04 10:45:48 · 806 阅读 · 0 评论 -
An incomplete list of C++ compilers
I (Bjarne Stroustrup) am often asked to recommend a C++ compiler. However, I don't make recommendations; that would be too much like taking sides in commercial wars. Also, I don't know every C++ com转载 2012-03-04 16:10:58 · 638 阅读 · 0 评论 -
DLL 调用方式
DLL(动态连接库),然而可以分为动态调用于静态调用。下面我分别举一个例子说说。1)动态调用:首先:在VC++6.0中创建 Win32 Dynamic-link library工程创建一个动态连接库工程: 在头文件TestDll.h中写下代码 extern "C" int __declspec(dllexport) add(int n转载 2012-03-07 09:17:24 · 520 阅读 · 0 评论 -
makefile文件的编写
Makefile的编写假设我们有下面这样的一个程序,源代码如下:/* main.c */#i nclude "mytool1.h"#i nclude "mytool2.h"int main(int argc,char **argv){mytool1_print("hello");mytool2_print("hello");}转载 2012-03-14 20:56:47 · 504 阅读 · 0 评论 -
Linux平台Makefile文件的编写基础篇 (转载)
目的: 基本掌握了 make的用法,能在Linux系统上编程。环境: Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。准备: 准备三个文件:file1.c, file2.c, file2.h file1.c: #include转载 2012-03-14 20:54:54 · 366 阅读 · 0 评论 -
linux 静态动态链接库的编写和使用
生成和使用动态链接库和静态链接库的Makefile编写1. 概述介绍linux下生成和使用动态链接库和静态链接库的Makefile的编写方法。 2. 生成动态链接库的Makefile首先要有一个c或c++等工具编写出来的库函数文件,也就是里面写了一堆可以被别的函数调用的函数。比如: aaa.cpp#includevoid pf1(void){ pri转载 2012-03-14 21:36:18 · 593 阅读 · 0 评论 -
c 语言中的vararges
http://www.eskimo.com/~scs/cclass/int/sx11b.html http://www.52rd.com/blog/Detail_RD.Blog_zjhfqq_7608.html#include #include #include /* 函数原型声明,至少需要一个确定的参数,注意括号内的省略号 */int demo( c转载 2012-04-01 09:17:47 · 515 阅读 · 0 评论 -
程序员自我修养-目标文件的结构
图片引用《程序员自我修养》一书中下图是整个ELF的结构:起始是ELF的头文件:具体头文件内容见图2 图1. ELF文件的结构 图2. ELF头文件内容在Elf头文件的一些属性解释:e_entery :入口地址,如果是可重定向文件的话该值为0e_shoff (start of section原创 2012-07-11 14:42:10 · 1177 阅读 · 0 评论 -
c++函数和变量的名称修饰以及强弱符号
读《程序员自我修养》笔记c++函数和变量的名称修饰:注意:局部变量是不会有名称修饰的,只有全局标量和静态标量是有名称修饰的,但是变量的类型没有加入到修饰名称中,所以变量时整形还是double都一样。局部静态变量会把所在的函数名称也添加进去extern "C"的使用,是将大括号中的内部代码当成c语言代码处理,而不会用到c++的名称修饰,而c语言的名称修饰很简单就是在符号前面添原创 2012-07-11 14:47:09 · 1642 阅读 · 0 评论 -
大小端
大端模式所谓的大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;例子: 0000430: e684 6c4e 01001800 53ef 0100 0100 00000000440: b484 6c4e 004eed00 0000 0000 0100转载 2012-07-19 18:41:55 · 1371 阅读 · 0 评论 -
kmp算法整理
模式匹配index(StringS,String T,int pos)T称为模式串S称为主串简单的想法:从主串的i位置开始匹配,逐一比较,如果当T完成之前都匹配,说明i就是匹配T的开始位置。代码: int Index1(string s,string t,int& pos) { int i,j; for(i=0;i<=s.size()-t.size();i++原创 2012-07-11 08:21:23 · 447 阅读 · 0 评论 -
开源-负载均衡&http正向代理器
透明的负载均衡器&http正向代理* master-workers架构,http正向代理由独立的dns请求以及缓冲进程 * 使用epoll(ET)模式,采用全异步方式(双缓存,实现双向同时转发);* 事件管理机制(事件池,事件对象分离)* 使用红黑树超时管理* 灵活且简单的配置文件* 多种可配置负载均衡的算法* 实现可以多个分组同时负载* 不间断在线配置参数功能原创 2015-07-01 14:26:14 · 966 阅读 · 0 评论