![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
sun_168
努力做一个好码农
展开
-
C++程序内存问题
C++的指针为我们带来了方便,但也带来了程序调试中的困难。 如果不用指针,程序出错地方容易定位,修改起来很容易,比如java中的数组越界,会有很明确的提示。在C++中如果数据越界,它可能导致另一个数组不能正常使用,从而导致访问冲突。 比如,笔者程序中的一段代码: int data[500]; char str[10000]; while(fin.getline(str, 10000))原创 2012-04-24 19:23:48 · 776 阅读 · 0 评论 -
C++ 优先队列用法
最近用近似算法实现旅行商问题,需要首先求解最小生成树,用Prim算法求解最小生成树,需要找割的最小边。于是想到了使用priority_queue,现在把priority_queue用法总结一下,不废话了,总结完了,快点求解TSP。 在STL中它的源码如下: class priority_queue { protected: _Sequence c;原创 2012-06-20 20:41:51 · 15854 阅读 · 0 评论 -
求任意数据类型的字节长度
显然,大家容易想到就是用sizeof,但是人家面试官就不让用sizeof实现,就让自己编程实现,这下就发毛了。 哈哈,其实没必要,只要知道sizeof的底层实现便可。sizeof其实不是一个函数只是一个运算符,很简单。 其原理就是当我们对数据类型地址进行加1和减1操作时,实际上就是加或减了相应数据类型字节数的整数倍,其代码如下: #define sizeof(L_Value) ((char*原创 2012-06-21 07:45:55 · 1229 阅读 · 1 评论 -
C++ 申请二维数组
C++申请二维数组的两种方法(以4*7数组为例): 方法1: Type * matrix = new Type[4*7]; 访问方法,用matrix[i*4+j]; 方法2: Type** matrix = new Type*[4]; for( int i = 0; i { matrix[i] = new Type[7]; } 访问方法: matrix[i][原创 2012-06-23 18:22:26 · 813 阅读 · 0 评论 -
浅谈C++中的指针
以前学习数据结构的时候,写程序时总是见一些复杂的指针类型,比如Node ** ¶m1,今天总结一下,以备以后学习。 首先谈下指针类型,指针类型有形象的理解,就是指针变量中存储的是一个地址,而该地址指向的空间才是我们所要访问的内容(值),这也就是一级指针,我们可以将它理解为汇编语言中的间接访问。 举个例子, int a = 3; int * b = &a; 如下图所示:原创 2012-06-23 17:21:55 · 784 阅读 · 0 评论 -
实现两数值型变量交换数值的方法
假设两个数值型变量a,b实现二者值交换,可用下面两个方法之一: a = a + b; b = a - b; a = a - b; 这个方法很巧妙,但是在a和b指向同一地址时,不起作用,注意在数组排序时,不要用这样方法,容易出错。 另一种很传统的方法是 tmp = a; a = b; b =tmp; 这种方法最可靠。 目前水平只知道前者比后者节省空间,但是这两种方法的时间效率原创 2012-07-08 10:09:49 · 821 阅读 · 0 评论 -
C++拷贝构造函数可以访问传入对象的private成员变量
待完善原创 2017-12-02 00:09:05 · 1051 阅读 · 0 评论