
c/c++
wjatchd
这个作者很懒,什么都没留下…
展开
-
非递归后序遍历二叉树
/* non-recursion postorder */template void BinaryTree::PostorderNonRecursion(){ if(NULL==root) { return; } using std::stack; stack *> s; TreeNode *pTreeNode=root;原创 2013-02-23 22:53:15 · 456 阅读 · 0 评论 -
排序
#ifndef HEAPSORT_H_#define HEAPSORT_H_template void Adjust(T arr[],int n,int k){ T *min=((2*k+1)arr[2*k+1]) ? &arr[2*k+1] : &arr[2*k]; if(arr[k]>*min) { T t=*min; *min原创 2013-02-25 23:31:40 · 400 阅读 · 0 评论 -
类继承和引用
#include using std::cout;using std::endl;class BASE{public: BASE(int n):m_b(n){} ~BASE(){} void print(){cout<<"BASE : m_b = "<<m_b<<endl;}private: int m_b;};cla原创 2013-03-14 18:30:39 · 656 阅读 · 0 评论 -
ssh不能连接虚拟机的问题
ssh无法连接虚拟机?1、保证主机和虚拟机能够相互ping通。2、虚拟机安装了sshd : sudo apt-get install openssh-server。原创 2013-03-21 00:08:07 · 700 阅读 · 0 评论 -
inet_ntoa 的问题
将网络地址转换成点分十进制的字符串格式。inet_ntoa返回一个char *,而这个char *的空间是在inet_ntoa里面静态分配的,所以inet_ntoa后面的调用会覆盖上一次的调用。转载 2013-04-02 14:10:01 · 631 阅读 · 0 评论 -
winmm.dll 和 ws2_32.dll 简单介绍
winmm.dll是Windows多媒体相关的应用程序接口,用于低档的音频和游戏手柄。ws2_32.dll是Windows Sockets应用程序接口,用于支持网络应用程序。原创 2013-03-19 16:44:38 · 964 阅读 · 0 评论 -
抓包程序丢包的问题
出现丢包的原因可能是缓冲区太小了:1、调用pcap_set_buffer_size调整应用程序缓冲区的大小。2、如果使用wincap,还可以调用pcap_setbuff设置内核缓冲区的大小。 一般的,程序设置对抓包效率影响有限,关键因素还是回调函数的处理速度,还有主机的硬件性能,如网卡、cpu、硬盘。原创 2013-03-21 17:55:22 · 3401 阅读 · 0 评论 -
unicode和中文
#include #include #include int main(void){ setlocale(LC_ALL,"chs"); wchar_t p[]=L"world你dog好hello程序员"; int len=wcslen(p); std::cout<<"len: "<<len<<std::endl; for (int i=0;i<l原创 2013-05-06 10:47:01 · 602 阅读 · 0 评论 -
windows杀死进程
bool KillProcess(std::string strProcessName){ if ("" == strProcessName) { return false; } HANDLE hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if (INVALID_HANDLE_VALUE ==转载 2013-06-24 16:29:38 · 781 阅读 · 0 评论 -
已知二叉树的节点数,求树的深度
int depth(int n){ assert(n>=0); if(n>0) { int m=2,k=1; while(m<n+1) { m=m<<1; ++k; } return k; } else {原创 2013-01-09 12:59:13 · 5997 阅读 · 0 评论 -
linux 重启网络服务
1、service network restart2、ifconfig eth0 down ifconfig eth0 up 欢迎补充!原创 2013-02-20 16:43:22 · 548 阅读 · 0 评论 -
随机生成[0,n)(n<=RAND_MAX)的数
int rand_n(int n){ assert(n>=0 && n<=RAND_MAX); int k=rand(); int M=RAND_MAX/n*n; while (k>=M) { k=rand(); } return k%n;}原创 2013-01-09 13:15:43 · 587 阅读 · 0 评论 -
类的静态成员
1、类的静态成员函数不能直接访问类的非静态数据成员。2、类的静态数据成员必须在类声明的外面被初始化,且必须被初始化。3、类的静态数据成员的初始化可以在.h文件中,也可以在.cpp文件中,但是只能被初始化一次。4、类的静态成员函数可以作为线程函数。 欢迎补充!原创 2013-02-20 16:10:18 · 342 阅读 · 0 评论 -
socket客户端demo
#include #include #include #include #include #include #include #include #include #include #include #include #include void client(int fd,std::string server_ip,short server_p原创 2013-02-20 15:53:18 · 463 阅读 · 0 评论 -
socket服务器端demo
#include #include #include #include #include #include #include #include #include #include #include #include #include #define THREAD_NUM 1024static unsigned int recv_bytes原创 2013-02-20 15:54:55 · 420 阅读 · 0 评论 -
c++ stl 读文件
#include #include #include #include #include #include using namespace std;int main(){ ifstream inf("data.dat"); if(inf) { istream_iterator it(inf),end;原创 2013-02-20 16:05:31 · 650 阅读 · 0 评论 -
linux grep 命令
这里不是要总结grep命令的详细使用方法,而是记录个人的使用经历。 今天在编写一个测试小程序的时候,每次运行一个库函数时,都出现"segementation default",但是调试时却无法进入这个函数。运行 grep -n -r "函数名" 库路径发现"函数名"是一个全局的函数指针,它在动态加载动态库时被赋值,因此才发现是加载动态库出现了问题。原创 2013-02-20 16:35:45 · 426 阅读 · 0 评论 -
讨论virtual析构函数
1、什么时候需要virtual析构函数? polymorphic(带多态性质的)base class应该声明一个virtual析构函数。就是说,如果class带有任何virtual函数,它就应该有一个virtual析构函数。#include <cstdio>#include <cstring>class Base{public: Base(const char *s) {翻译 2015-04-11 18:31:01 · 581 阅读 · 0 评论