C++
yuanweihuayan
准备研究发布windows内核相关文章
展开
-
search详解
search算法: //TEMPLATE FUNCTION searchtemplateclass_FwdIt1, class_FwdIt2, class_Diff1, class_Diff2> inline _FwdIt1 _Search(_FwdIt1 _First1原创 2012-05-05 08:42:17 · 1628 阅读 · 0 评论 -
random_shuffle
Random_shuffle:随机打乱容器. // TEMPLATE FUNCTION random_shuffletemplate<class _RanIt, class _Diff> inline void _Random_shuffle(_RanIt _First, _RanIt _Last, _Diff *) { // shuffle [_First, _Last)原创 2012-05-27 16:13:13 · 2276 阅读 · 0 评论 -
partition/stable_partition详解
Partition:将满足条件的元素向前移动.// TEMPLATE FUNCTION partitiontemplateclass _BidIt,class _Pr> inline_BidIt _Partition(_BidIt _First, _BidIt _Last, _Pr _Pred){ // move elements satisfying _Pred to beg原创 2012-05-27 16:14:33 · 3181 阅读 · 1 评论 -
transform详解
transform:形式一:transform(begSrc,endSrc,begDest,Fun)函数功能:对[begSrc,endSrc)运用Fun操作,并将返回值赋值给begDest.其中Fun的形式为:T (Fun*)(T)这里需要注意begDest需要的区间要求是最少大于distance[begSrc,endSrc).否则将会引起覆盖.templateclass _I原创 2012-05-10 22:09:26 · 1905 阅读 · 0 评论 -
generate详解
generate:将区间[beg,end)赋值为fun返回值 //TEMPLATE FUNCTION generate_ntemplateclass _OutIt, class_Diff, class_Fn0> inline void_Generate_n(_OutIt _Dest, _Diff _原创 2012-05-10 22:10:53 · 2311 阅读 · 0 评论 -
replace/replace_if详解
replace:替换指定值的元素 //TEMPLATE FUNCTION replacetemplateclass _FwdIt, class_Ty> inline void_Replace(_FwdIt _First, _FwdIt _Last, const_Ty& _原创 2012-05-12 21:45:58 · 1740 阅读 · 0 评论 -
replace_copy/replace_copy_if
replace_copy:这个函数和replace对应,唯一不同的是,它将得到的结果存在另一个容器里面 // TEMPLATEFUNCTION replace_copytemplateclass _InIt, class_OutIt, class_Ty> inline _OutIt _Replace_copy(原创 2012-05-12 21:46:55 · 1320 阅读 · 0 评论 -
swap_ranges详解
swap_ranges:交换两个区间的元素,如果两个区间是容器的所有元素.应该使用swap. //TEMPLATE FUNCTION swap_rangestemplateclass_FwdIt1, class_FwdIt2> inline _FwdIt2 _Swap_ranges(_FwdIt1 _First1,_FwdIt原创 2012-05-10 22:10:02 · 1655 阅读 · 0 评论 -
fill详解
fill:将区间[beg,end)赋新值 // TEMPLATEFUNCTION filltemplateclass _FwdIt, class_Ty> inline void_Fill(_FwdIt _First, _FwdIt _Last,const_Ty& _Val) { // copy原创 2012-05-10 22:10:28 · 1459 阅读 · 0 评论 -
remove_copy/remove_copy_if详解
remove_copy:移除值为value的元素,并将处理后在容器复制到另一容器里.源码: // TEMPLATE FUNCTION remove_copytemplateclass _InIt, class _OutIt, class _Ty> inline _OutIt _Remov原创 2012-05-14 22:26:46 · 2808 阅读 · 0 评论 -
rotate/rotate_copy详解
旋转元素次序:rotate源码:templateclass _RanIt,class _Diff,class _Ty> inlinevoid _Rotate(_RanIt _First, _RanIt _Mid, _RanIt _Last, _Diff *, _Ty *){ // rotate [_First, _Last), random-access iterators原创 2012-05-27 16:12:20 · 1358 阅读 · 0 评论 -
next_permutation/prev_permutation详解
Next_permutation:按照升序全排列源码:// TEMPLATE FUNCTION next_permutationtemplateclass _BidIt> inlinebool _Next_permutation(_BidIt _First, _BidIt _Last){ // permute and test for pure ascending, using原创 2012-05-27 16:11:49 · 1112 阅读 · 0 评论 -
find_end详解
函数功能:查找在父序列中最后匹配的子序列.find_end这个函数比较特殊一点,说起特殊并不是指其功能的特殊,而是其命名的特殊.我们知道find系列算法是查找指定值的函数(单个值),而search系列则是查找”子系列”算法.但是Nicolai M.Josuttis在书里面也介绍到了原因:它说是因为这些算法并非早起STL的部分.这可能就是需要C++标准委员会商榷的一部分了.但是话又说回来,如果按原创 2012-05-06 22:24:47 · 3512 阅读 · 0 评论 -
find_first_of详解
find_first_of函数和其他函数类似,提供了两个函数,一个支持仿函数,一个内置关系运算符(以默认的函数功能:返回第一个既在_First1-_Last1中,又在_First2-_Last2中元素的位置(第一个范围). //TEMPLATE FUNCTION find_first_oftemplateclass_FwdIt1,原创 2012-05-07 21:48:13 · 2491 阅读 · 0 评论 -
adjacen_find详解
adjacen_find:搜索给定区间中两个连续相等的元素这个函数也以重载的形式给出了这两个函数.一个是默认的关系运算(==),一个是仿函数//TEMPLATE FUNCTION adjacent_findtemplateclass_FwdIt>inline _FwdIt _Adjacent_find(_FwdIt _First,_FwdIt _Last)原创 2012-05-07 22:11:36 · 1004 阅读 · 0 评论 -
equal详解
equal:判断[_First1,_Last1)与[_First2,...)开头区间的元素是否相等.templateclass _InIt1, class_InIt2> inline boolequal(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2)原创 2012-05-07 22:41:41 · 1700 阅读 · 0 评论 -
算法库(五)
13. lexicographical_compare:按字典顺序比较class _functorTest{public: enumcpm_enum{ normal_cpm,nonormal_cpm }; _functorTest(cpm_enum param =nonormal_cpm ):_cValue( param ){}原创 2012-04-23 21:57:24 · 916 阅读 · 0 评论 -
算法库(六)
14. generate:将(仿)函数得到的值赋值给输入范围的各个元素.generate_n:将(仿)函数得到的值赋值给first-first+n的各个元素class IntSequence{private: intvalue;public: IntSequence( intinitialValue ):value( init原创 2012-04-23 21:58:09 · 935 阅读 · 0 评论 -
lexicographical_compare详解
lexicographical_compare函数功能:按照字典顺序比较前一区间是否小于后一区间.templateclass _InIt1, class _InTy, size_t _InSize, class _Pr> inline bool equal(_InIt1 _First1, _InIt1 _Las原创 2012-05-08 22:59:21 · 1898 阅读 · 0 评论 -
mismatch详解
mismatch:搜寻两区间第一处不同点.templateclass _InIt1, class _InIt2> inline pair mismatch(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2)原创 2012-05-08 22:57:41 · 3046 阅读 · 0 评论 -
copy/copy_backward
copy:将源区间中的所有元素复制到dest为起点中去.templateclass _InIt, class _OutIt> inline _OutIt copy(_InIt _First, _InIt _Last, _OutIt _Dest) { // copy [_First原创 2012-05-08 23:00:57 · 1349 阅读 · 0 评论 -
unique_copy/unique_copy_if详解
unique_copy:在unique的基础上,不改变源容器,并将得到的结果复制给_Dest.templateclass _FwdIt, class_OutIt, class_Pr> inline _OutIt _Unique_copy(_FwdIt _First,_FwdIt _Last,原创 2012-05-14 22:28:20 · 979 阅读 · 0 评论 -
reverse/reverse_copy详解
reverse:逆转元素次序 //TEMPLATE FUNCTION reversetemplateclass_BidIt>inline void_Reverse(_BidIt _First, _BidIt _Last, bidirectional_iterator_tag) { // reverse e原创 2012-05-14 22:28:56 · 1299 阅读 · 0 评论 -
jsoncpp解析拼装数组
int main(){/*数组创建与分析:例子一:string strValue = "{\"ldh\":\"001\",\"gfc\":\"002\",\"yyj\":\"003\",\"andy\":[\"005\",\"123\",\"true\"]}";Json::Reader read;Json::Value value;value["ldh"] = "0原创 2012-08-15 13:44:23 · 19731 阅读 · 0 评论 -
wireshark http过滤
firebug只能抓get包和setForm的post包,抓不到submit的post包,需要用wireshark抓包; 抓到的http包包括正常的应用程序请求包和设备自动监测的包,在抓包分析的时候应当过滤设备消息查询的包 常用的过滤规则:http 所有http包http.connection 过滤出应用程序的http请求和返回http.date 仅仅显示返回包ht转载 2012-08-16 11:21:19 · 3599 阅读 · 0 评论 -
跟我一起写 Makefile
概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会转载 2013-05-12 20:06:47 · 899 阅读 · 0 评论 -
opencv 播放进度读取
char in_file[] = "out.avi"; char title[] = "Play Video"; char track[] = "track control"; pCapture = cvCreateFileCapture( in_file ); if( pCapture == NULL ) return; cvNamedWindow( title,CV_WINDOW原创 2013-11-28 20:28:05 · 1180 阅读 · 0 评论 -
opencv 在指定位置显示图像
如何将利用OpenCV加载的图像显示在窗口位置? VC++中为了加载各种类型的图像,如果自己编,那么工作量很大,因为要面对的图像类型太多了(bmp,jpeg,jpg,gif,tif,ppm,pgm,png,pic等等)。我们不可能也没有必要针对每一种类型编出我们自己的编解码器,更为方便的方式是使用各种工具。一方面可以使用CXImage等类似库;另一方面可以利用OpenCV实现。这里我们讨论如何应用转载 2013-12-03 20:22:42 · 5139 阅读 · 0 评论 -
关于vector删除某一些特定的值的使用方法和出错的问题详解.
关于erase,我的理解就是:删除指定的元素,然后把刚刚删除的元素其后面所有元素往前移.然后改变end指针.使其往前移动一位.最重要的是,当前的迭代器不动(但是由于元素往前移了,所以它指向了原始状态的下一个元素).比如我有一个vector,vector的元素分别是0,1,2,3,4;如果我想删除元素值为3的元素.那么当我使用erase后,它的内存元素分别为0(begin),1,2,4(en原创 2014-05-03 17:36:06 · 3405 阅读 · 0 评论 -
prefast 使用
1. 概述 在前面的安全编码实践的文章里,我们讨论了GS编译选项和数据执行保护DEP功能。 结论是GS和DEP可以有效的缓解缓存溢出类型的安全漏洞的危害。关于这个结论,有两个大家需要值得注意的地方。 第一:GS和DEP是缓解(mitigation)措施。也就是说,代码本身仍然存在着安全漏洞,只是由于GS和DEP降低了其危害程度。 第二:GS和DEP存在其自身转载 2015-10-03 17:24:17 · 2744 阅读 · 0 评论 -
I,P,B帧和PTS,DTS的关系
基本概念:I frame :帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。P frame: 前向预测编码帧 又称predictive-frame,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图转载 2016-10-25 20:09:17 · 499 阅读 · 0 评论 -
libcurl教程
原文地址:http://curl.haxx.se/libcurl/c/libcurl-tutorial.html 译者:JGood(http://blog.csdn.net/JGood ) 译者注:这是一篇介绍如何使用libcurl的入门教程。文档不是逐字逐句按原文翻译,而是根据笔者对libcurl的理解,参考原文写成。文中用到的一些例子,可能不是出自原文,而是笔者在学习过转载 2012-07-30 12:36:46 · 2357 阅读 · 0 评论 -
curl_easy_setopt-curl库的关键函数之一
函数原型:#include CURLcodecurl_easy_setopt(CURL *handle, CURLoption option, parameter);说明:此函数用来告诉 libcurl 执行什么样的动作。该函数有 3 个参数(该函数的可设置选项非常之多):第 1 个参数 handle 是由 curl_easy_init() 返回的句柄;第 2 个参数是转载 2012-07-28 19:02:44 · 6492 阅读 · 1 评论 -
unique详解
unique:移除连续重复元素的多余元素 // TEMPLATEFUNCTION uniquetemplateclass_FwdIt>inline _FwdIt _Unique(_FwdIt _First, _FwdIt_Last) { // remove each matching previous原创 2012-05-14 22:27:48 · 1642 阅读 · 0 评论 -
关于字符串系列
在C中,并没有字符串这个数据类型,而是使用字符数组来保存字符串。C字符串实际上就是一个以null('\0')字符结尾的字符数组,null字符表示字符串的结束。需要注意的是:只有以null字符结尾的字符数组才是C字符串,否则只是一般的C字符数组。 C字符串定义时可以利用"="号进行初始化,但是以后不能利用"="对C字符串进行赋值。对C字符串的操作需要通过"string"文件中定转载 2012-07-06 17:39:41 · 954 阅读 · 0 评论 -
面试二
关于利用实参传递数组讨论.简单说下背景:最开始要求将一个数组的最小值取出来.例如int a[10] = { 0,11,2,23,4,95,64,71,8,29}现在想要取最小值0.题目本身很简单,做法如下.int GetMin( int* a,int n ){int iIndex = 0;for ( int i = 1;i {if ( a[i] {i原创 2012-07-16 22:44:05 · 1245 阅读 · 0 评论 -
面试一
最近找工作,发现有一道题目经常出现.那就是写一个仿string的类.让你补充程序:class MyString{public:MyString();~MyString();explicit MyString( char* pData );MyString( const MyString& cpyDest );MyString operator=( const M原创 2012-07-11 21:05:56 · 1884 阅读 · 6 评论 -
sizeof与strlen总结
sizeof和strlen这两个东西老是搞不清楚.今天总结一下:char ch[] = "abcde"; cout cout char ch1[100] = "abcde"; cout cout char* pch = "abcde"; coutsizeof指的是实际占用的大小.(包括\0)strlen则指的实际字符的大小(不包括\0)而对数组取大小,其原创 2012-07-18 18:48:54 · 832 阅读 · 0 评论 -
malloc,calloc,realloc的理解
三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(size_t numElements, size_t sizeOfElement); 都在stdlib.h函数库内它们的返回值都是请求系统分配的地址,如果请求失败就返回NULL原创 2012-08-10 18:28:40 · 1304 阅读 · 0 评论 -
http协议使用实例
#include #include #include #define MAXSIZE 1024#pragma comment(lib, "Wininet.lib") void urlopen(TCHAR*);int main(int argc, TCHAR* argv[]){ TCHAR ch[] = TEXT("http://dt.163.com/images/n原创 2012-07-27 13:33:19 · 1670 阅读 · 0 评论