摘要:extern void *memcpy(void *dest,void *src,unsigned int count);#include 功能:由src所指内存区域复制count个字符串到dest所指内存区域. 说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针. memse... 阅读全文
字符串操作函数<string.h>相关函数strcpy,strcat,等源码。
2013-08-20 20:35 by youxin, 4956 阅读, 0 推荐, 收藏,
摘要:首先说一下源码到底在哪里找。我们在文件中包含时,如果点击右键打开文档,会打开cstring,我们会发现路径为:D:\Program Files\visual studio\VC\include\cstring这个文件内容如下:// cstring standard header#pragma once#ifndef _CSTRING_#define _CSTRING_#include #ifdef _STD_USING #undef _STD_USING #include #define _STD_USING#else /* _STD_USING */ #include #endif /*.. 阅读全文
转:C++中引用传递与指针传递区别
2013-08-20 14:58 by youxin, 363 阅读, 0 推荐, 收藏,
摘要:从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参数是有本质上的不同的:指针传递参数本质上是值传递的方式,它所传递的是一个地址值。值传递过程中,被调函数的形式参数作为被调函数的局部变量处理,即在栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为 阅读全文
c++ 对象作为参数传递
2013-08-20 14:54 by youxin, 8458 阅读, 0 推荐, 收藏,
摘要:对象作为参数传递时是传值。把实参的对象赋值给形参。因此效率有点低。c++传参方式可以分为2种:1.传值 (指针作为参数,本质上也只是把地址作为值传递了而已)。2.传引用。所以,一切传递方式不是传引用就是传值。不像javascript,如果是原始数据类型则传值,如果是对象数据类型则传引用。如果函数的返回值是一个对象,有些场合用“引用传递”替换“值传递”可以提高效率。而有些场合只能用“值传递”而不能用“引用传递”,否则会出错。例如:classString{⋯//赋值函数String&operate=(constString&other);//相加函数,如果没有friend修饰则只许 阅读全文
动态规划 最长公共子序列 LCS,最长单独递增子序列,最长公共子串
2013-08-20 02:33 by youxin, 1032 阅读, 0 推荐, 收藏,
摘要:LCS:给出两个序列S1和S2,求出的这两个序列的最大公共部分S3就是就是S1和S2的最长公共子序列了。公共部分必须是以相同的顺序出现,但是不必要是连续的。选出最长公共子序列。对于长度为n的序列,其子序列共有2的n次方个,这样的话这种算法的时间复杂度就为指数级了,这显然不太适合用于序列很长的求解了。解法二:既然学到了动态规划,就来看看能否用动态规划的思想来解决这个问题。要使用动态规划,必须满足两个条件:有最优子结构和重叠子问题。为了便于学习,我们先来了解下这两个概念。如果问题的一个最优解中包含了子问题的最优解,则该问题具有最优子结构。当一个递归算法不断地调用同一问题时,我们说该最优问题包含重叠 阅读全文
梳排序(Comb sort)
2013-08-19 19:46 by youxin, 941 阅读, 0 推荐, 收藏,
摘要:CombSort,梳排序或者梳子排序,就像梳子那样有间隔地比较两个数,很形象,O(n*logn)时间复杂度,O(1)空间复杂度,属于不稳定的排序算法。算法的思想是使逆序的元素尽可能快地移动到最终的位置,而不是像冒泡排序那样每次交换只移动一个位置。http://blog.csdn.net/yui/article/details/5957264http://baike.baidu.com/view/4560283.htm 阅读全文
地精排序(Gnome Sort) 算法
2013-08-19 19:41 by youxin, 2512 阅读, 0 推荐, 收藏,
摘要:gnome应该是最简单排序的排序算法吧!GnomeSort,这是该算法的作者命名的,O(n*n)时间复杂度,O(1)空间复杂度,属于稳定的排序算法。算法的思想是每趟循环找到第一个逆序的元素,把它和在它前面的已排序的元素逐个进行比较、交换,有点像插入排序。void gnomeSort(int a[],int len){ int i=1; while(i<len) { if(a[i-1]<=a[i]) { i++; } else { int tmp=a[i-1];a[... 阅读全文
vs2010 调试 调用堆栈 窗口
2013-08-19 15:46 by youxin, 13897 阅读, 0 推荐, 收藏,
摘要:msdn 如何使用call stack窗口:http://msdn.microsoft.com/zh-cn/library/a3694ts5(v=vs.90).aspx使用“调用堆栈”窗口可以查看当前堆栈上的函数或过程调用。“调用堆栈”窗口显示每个函数的名称和编写它所用的编程语言。函数或过程名可能伴随有可选信息,如模块名、行号、字节偏移量以及参数的名称、类型和值。 可以打开或关闭这些可选信息的显示。一个黄色箭头标识执行指针当前所位于的堆栈帧。 默认情况下,该帧的信息显示在源、“反汇编”、“局部变量”、“监视”和“自动”窗口中。 如果想将上下文更改为堆栈上的另一个帧,可以在“调用堆栈”窗口中执行 阅读全文
vs2010 条件断点 has changed是什么意思?
2013-08-19 13:38 by youxin, 1046 阅读, 0 推荐, 收藏,
摘要:在vs2010 断点设置 condition里,有2个选项可以选择:一个是true,另个是has changed,true好理解,如果表达式为真则停止。但是has changed是什么意思。看了官网的说明:Chooseis trueif you want to break when the expression is satisfied orhas changedif you want to break when the value of the expression has changed.Note:The debugger does not evaluate the expression 阅读全文
vs2010根据字符串内容添加断点
2013-08-19 13:07 by youxin, 1564 阅读, 0 推荐, 收藏,
摘要:在vs中我们可以直接用表达式。数值型比较直接用操作符即可。如i==2,i<2;但是字符型比较呢?加入我们有一个名为string的变量,定义如下:char *string="Two";设置断点:当我们运行上述代码时,会发现即使string的内容”Two”时,运行并没有中断。这是因为==运算符比较的是两个字符串的地址而不是内容,因此上述断点并不能满足我们的需求。(字符串名就是地址)Visual Studio考虑到程序员经常会根据字符串的内容添加断点,因此在添加断点这个功能上为字符串做了特殊的支持。我们在根据字符串内容添加断点时,可以使用strcmp等函数来设置断点。于是在 阅读全文
浙公网安备 33010602011771号