![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
tianxiajianling
这个作者很懒,什么都没留下…
展开
-
C/C++文件操作
在C++中,可以使用多种方法对文件进行操作,如基于C的文件操作、基于C++的文件操作等等;◆基于C的文件操作在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。一.流式文件操作这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef struct {int level; /* fill/empty level o转载 2010-04-22 11:34:00 · 550 阅读 · 0 评论 -
判断单链表是否存在环,判断两个链表是否相交问题详解
有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如何找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fas原创 2012-05-07 16:17:48 · 516 阅读 · 0 评论 -
C/C++中如何动态分配内存(new/delete malloc/free 区别联系)
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。1、new 是c++中的操作符,malloc是c 中的一个函数2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数3、内存泄漏对于mallo原创 2012-05-09 15:20:05 · 2584 阅读 · 1 评论 -
哈希排序
转自:http://wenku.baidu.com/view/c8ca9533b90d6c85ec3ac6db.html文档下载:http://download.csdn.net/detail/tianxiajianling/4288941第一部分:Top K 算法详解问题描述百度面试题: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长原创 2012-05-09 16:53:08 · 35025 阅读 · 6 评论 -
static关键字
面向过程设计中的static1、静态全局变量a 该变量在全局数据区分配内存;b 未经初始化的静态全局变量会被程序自动初始化为0;c 静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的,其它文件中可以定义相同名字的变量,不会发生冲突。2、静态局部变量a 该变量在全局数据区分配内存;b 在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行原创 2012-05-09 15:50:44 · 683 阅读 · 0 评论 -
libcurl介绍
http://curl.haxx.se/libcurl/http://blog.csdn.net/JGood/article/details/4787670原创 2012-04-24 11:51:25 · 650 阅读 · 0 评论 -
阳历阴历转换
阳历换算阴历的算法原理。阳历,有很强的规律性。每年12个月,1、3、5、7、8、10、12月都为31天;2月份平年28天,闰年((year%400==0)||(year%4==0&&year%100!=0))为29天,其余月份为30天。1900年为28天;//下面函数返回某年某月某日是星期几int weekOfDate(int year,int month,day){retur原创 2012-06-05 09:18:29 · 2767 阅读 · 0 评论 -
C语言运算符优先级 详细列表
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。恩,问这个问题的人太多了,懒得继续回答,直接贴上来自己看。。。优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左转载 2012-07-02 21:48:25 · 439 阅读 · 0 评论 -
linux 下 libpcap抓包实例程序
#define APP_NAME "sniffex"#define APP_DESC "Sniffer example using libpcap"#define APP_COPYRIGHT "Copyright (c) 2005"#define APP_DISCLAIMER "THERE IS ABSOLUTELY NO WARRANTY FO转载 2012-07-17 16:28:38 · 5343 阅读 · 0 评论 -
MSVC的 未公开开关d1reportAllClassLayout
在看雪学院的 >一文中偶尔看到说VC6.0 以上的编译器支持一个d1reportAllClassLayout的开关, 可以输出所有对象的内存布局信息, 心想我不知道多少次查看过 cl /?的输出, 没印象这个玩艺儿呀, 打开cmd窗口, 弄了个例子程序, 一试不爽.小例子程序如下:struct Foo{ int i; char c;};i转载 2012-10-04 23:28:00 · 2773 阅读 · 2 评论 -
unique_ptr
unique_ptrunique_ptr(定义在中)提供了一种严格的语义上的所有权o 拥有它所指向的对象o 无法进行复制构造,也无法进行复制赋值操作(译注:也就是对其无法进行复制,我们无法得到指向同一个对象的两个unique_ptr),但是可以进行移动构造和移动赋值操作o 保存指向某个对象的指针,当它本身被删除释放的时候(例如,离开某个作用域),会使用给定的删除器(delete原创 2012-12-24 11:59:56 · 596 阅读 · 0 评论 -
STL map与Boost unordered_map
boost::unordered_map与 stl::map的区别就是,stl::map是按照operator而boost::unordered_map是计算元素的Hash值,根据Hash值判断元素是否相同。所以,对unordered_map进行遍历,结果是无序的。用法的区别就是,stl::map 的key需要定义operator< 。 而boost::unordered_map需原创 2012-12-24 10:45:17 · 1000 阅读 · 0 评论 -
boost bind使用指南
bind - boost头文件: boost/bind.hppbind 是一组重载的函数模板.用来向一个函数(或函数对象)绑定某些参数.bind的返回值是一个函数对象. 它的源文件太长了. 看不下去. 这里只记下它的用法:9.1 对于普通函数假如有函数 fun() 如下: void fun(int x, int y) {cout }现在我们看看怎原创 2012-12-24 17:52:26 · 472 阅读 · 0 评论 -
数据表示-大端法 小端法
UNXI网络编程》定义:术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址,即是小端字节序;大端存在起始地址,即是大端字节序。也可以说:1.小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。2.大端法(Big-Endian)就是高位字节排放在内存的低地址端即该值的起始地址,原创 2012-04-27 14:12:24 · 1505 阅读 · 0 评论 -
位结构
转自:http://hi.baidu.com/lbxthinker/blog/item/da58de2be0e3eb24d52af102.html1 定义位结构位结构是一种特殊的结构, 其中以位为单位的成员称为“位段”或“位域”。位结构定义的一般形式为:struct位结构名{ 数据类型 变量名:整型常数;数据类型 变量名:整型常数;}原创 2012-04-27 14:14:30 · 1337 阅读 · 1 评论 -
IPv6 报文构造库
目前,专为用户 IPv6 网络渗透测试的工具还比较少。THC IPv6 是一个开放源代码的 IPv6 工具,它提供了一个易于使用的 IPv6 报文构造库,能够方便地构造各种 IPv6 报文。http://download.csdn.net/detail/tianxiajianling/3970540http://www.thc.org/thc-ipv6原创 2011-12-26 16:08:31 · 1306 阅读 · 0 评论 -
char* 、 CString转换
char* 转化为 CString 现在你有一个 char* 类型的数据,或者说一个字符串。怎么样创建 CString 对象呢?这里有一些例子: char * p = "This is a test"; 或者象下面这样更具有 Unicode 意识: TCHAR * p = _T("This is a test") 或 LPTS原创 2010-04-25 12:28:00 · 441 阅读 · 0 评论 -
MFC 启用和禁用控件
启用和禁用控件可以调用CWnd::EnableWindow 函数。BOOL EnableWindow(BOOL bEnable = TRUE);判断控件是否可用可以调用 CWnd::IsWindowEnable函数BOOL IsWindowEnable(); 禁用控件CWnd *pWnd = GetDlgItem(IDC_EDIT1);pWnd->EnableWindow(原创 2010-04-29 20:46:00 · 12827 阅读 · 0 评论 -
Windows下OpenSSL的安装和编程(转载)
Windows下OpenSSL的安装和编程(转载)必备条件 1、安装vc++6.0 2、下载ActivePerl-5.8.0.806-MSWin32-x86并安装:(可能要重启) http://www.sogoz.info/down.asp?id=3683&no=1 3、下载openssl-0.9.8并解压。 http://www.openssl.org/sou转载 2010-05-01 14:49:00 · 1093 阅读 · 0 评论 -
Win32下Wireshark的编译
需要准备的工具:1. Visual C++ 2003或以上版本(C编译器)2. Platform SDK Server 2003 R2(微软提供的软件开发包,一般VS中会自带,无需另外下载)3. Cygwin(一个Win32上的仿Unix平台) Cygwin的安装程序是一个只有297KB大小的壳子,可以从http://cygwin.com/setup.exe直接下载。运行之原创 2010-05-01 14:47:00 · 2046 阅读 · 0 评论 -
MFC 对话框背景
先载入你的图片到资源,然后loadbitmap 最后用 cbrush画出来。具体过程如下:首先定义 HBRUSH m_BkBrush;1,增加消息处理函数OnCtlColor2,构造函数中m_bitmap.LoadBitmap(IDB_BITMAP1); m_brush.CreatePatternBrush(&m_bitmap);3,消息处理函数返回自定义画刷4,完成原创 2010-05-01 14:45:00 · 651 阅读 · 0 评论 -
MFC 树形控件使用
添加对话框函数OnInitDialog(),WM_INITDIALOG添加树形控件函数OnSelchangedTree(),TVN_SELCHANGED BOOL CIntroduceDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here TV_INSERTST原创 2010-05-09 19:41:00 · 3776 阅读 · 0 评论 -
自定义调试函数debug
自定义调试函数debug。为了避免方法一的缺点,可以利用条件编译技术,如程序4自定义调试函数debug。当程序正式发布的编译时取消宏定义__DEBUG__,在正式发布的程序中就不会输出调试信息。若又出现bug,只要重新在编译程序时定义宏__DEBUG__即可恢复原来的调试信息原创 2011-08-17 00:20:44 · 1849 阅读 · 0 评论 -
MFC 多文档接口MDI,ReBar实现工具条的可拖拽
class CMainFrame 中添加变量 CReBar m_wndReBar;int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)return -1; // Rebar support begin原创 2011-12-01 17:52:46 · 1758 阅读 · 0 评论 -
MFC MDI单窗口多标签实现
下载地址 http://download.csdn.net/detail/tianxiajianling/3867889添加MDITabs.h,MDITabs.cpp到工程CMainFrame类中增加变量 CMDITabs m_wndMDITabs 包含#include “MDITabs.h”CMainFrame::OnCreate()最后插入 m_wndMDIT原创 2011-12-01 17:31:45 · 2612 阅读 · 0 评论 -
程序在启动时不创建一个新文档
CXxxApp::InitInstance():在程序的InitInstance中的ProcessShellCommand函数之前加入: cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;原创 2011-12-20 09:40:36 · 576 阅读 · 0 评论 -
MDI程序、文档最大化方式打开
主窗口的最大化方法:在CTestApp::InitInstance()中将 pMainFrame->ShowWindow(m_nCmdShow);改为 pMainFrame->ShowWindow(SW_MAXIMIZE);文档的最大化方法:CChildWnd中增加虚函数:void CChildFrame::ActivateFrame(int原创 2011-12-21 09:49:28 · 624 阅读 · 0 评论 -
基于对话框的多标签多进程浏览器实现
主要运用的方法、类1.CreateProcess函数2.CTabCtrl类vc6.0实现改自MuiltiProcessTab,感谢。下载地址http://download.csdn.net/detail/tianxiajianling/3928102原创 2011-12-16 12:20:53 · 1111 阅读 · 0 评论 -
c++ 注意
在类中标准库/boost可以不用std::unique_ptr复杂变量要用std::unique_ptr template bool func(.....) { for (typenameRepeatedPtrField::const_iterator iter = list.begin();......) ......}原创 2013-01-05 17:09:42 · 429 阅读 · 0 评论