![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构之基础
qinlinlinwoaini
新手
展开
-
特殊运算符实现 两个变量交换
不用加减乘除运算符,实现两个变量的交换(^异或实现);a=a^b;b=a^b;a=a^b;原创 2015-03-23 14:04:01 · 390 阅读 · 0 评论 -
结构体与类的区别
C/C++结构体的区别 C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。 C++中的结构体和类的异同: 一、相同之处:结构体中可以包含函数;也可以定义public、private、protected数据成员;定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数; 也就是说在C++当中,结构原创 2015-07-17 15:48:49 · 780 阅读 · 0 评论 -
数组与指针
int main(){ const char str3[]="abc"; const char str4[]="abc"; const char *str5="abc"; const char *str6="abc";}str3!==str4,数组是存储在栈空间的,两者地址不相等;str5==str6;abc存储在常量区,str5和str6指向他们的首原创 2015-07-17 14:47:30 · 290 阅读 · 0 评论 -
sizeof和strlen
` int main() { char arr[10]="hello"; printf("%d\n",strlen(arr)); printf("%d\n",sizeof(arr)); return 0; } strlen只关心存储的数据内容的实际长度,sizeof只关心分配的空间大小,所以结果为 5,10;原创 2015-07-17 15:31:48 · 275 阅读 · 0 评论 -
c++内存泄漏
内存泄漏是指由于程序员疏忽或者错误,未能释放不在使用的内存;解决方法:从堆中申请内存后,使用完成之后,要用delete或者free来释放空间;原创 2015-07-17 15:23:44 · 453 阅读 · 0 评论 -
C++ 内存分配方式,堆区,栈区,new/delete/malloc/free
内存分配方式内存分配方式有三种:[1] 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量, static 变量。[2] 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中 ,效率很高,但是分配的内存容量有限。[3] 从堆上分配,亦称动态内存分配 。程序在运转载 2015-07-17 15:10:20 · 382 阅读 · 0 评论 -
枚举的值如何计算
枚举原创 2015-07-17 14:37:37 · 633 阅读 · 0 评论 -
按位与&,按位或|,按位异或^
按位与& 按位或| 按位异或^原创 2015-07-17 14:15:02 · 394 阅读 · 0 评论 -
sql索引的定义以及用法总结
索引定义:SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度(类似于汉语词典中按照拼音或者字画查找)。索引作用:通过索引可以大大的提高数据库的检索速度,提高数据库的性能。索引的类型:1:唯一索引:唯一索引不允许两行有相同的索引值(其实也就是说唯一索引的这一列,每个值都是唯一的);例如,如果在stuInfo表中的学员员身份证号(stu原创 2015-07-28 12:26:52 · 9357 阅读 · 0 评论 -
Hashtable,hashset,hashmap的原理和区别
hashtable和hashset的区别:这两个从不同的接口继承下来的,两者完全不一样,前者数据以的形式储存,后者是存储单个对象的。hashtable和hashmap的区别:1:hashtable是基于陈旧的类继承下来的(Dictionary),hashmap是java引进的map接口的一个实现;2:hashtable是同步的,而hashmap不是同步的(异步就是一原创 2015-07-28 12:07:08 · 795 阅读 · 0 评论 -
数据库常见面试题
第一范式:数据库表中的每一列都是不可再分的基本数据项,值或者不能有重复的属性 ,比如说在一个表中有电话这个字段,其值既有手机号,又有座机号,这就不符合了。 总结:字段不能再分。第二范式:在第一范式的基础上建立起来的,即满足第二范式必须要先满足第一范式,第二范式要求数据库表中的每个实例或行必须可以被惟一的区分 为实现区分通常需要为表加上一个列 以存储各个实例的惟一标识。 总结:不能部分依赖,就是说原创 2015-07-28 13:18:07 · 771 阅读 · 0 评论 -
阿里常考面试题及答案
一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?答: 1、String是字符串常量,StringBuffer和StringBuilder都是字符串变量。后两者的字符内容可变,而前者创建后内容不可变。2、String不可变是因为在JDK中String类被声明为一个final类。3、StringBuffe转载 2015-07-28 13:26:19 · 747 阅读 · 0 评论 -
结构体与类的区别
C++中最主要的区别在于两点: (1)类中默认的成员访问权限是private的,而struct中则是public的。 (2)从class继承默认是private继承,而从struct继承默认是public继承。原创 2015-03-23 13:52:02 · 354 阅读 · 0 评论 -
数据结构常用算法实现
程序2_1.c提供了顺序存储结构下线性表的实现。第1行定义了一个常数值MAXSIZE。它是一个常数,表示线性表的最大长度。第2行把ELEMTYPE设置为int的一个别名。这样,这个例子就可以使用一组整数了。第3行到第7行包含了线性表的说明。接下来从第8行到第46行线性表运算函数的定义。第8到第11行将线性表置成空表,只需简单地将线性表元素个数置成0即可。由于线性表的长度已经记录在结构成员l转载 2015-03-18 19:07:56 · 556 阅读 · 0 评论 -
虚函数与纯虚函数
首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次:[cpp] view plaincopy转载 2015-03-23 13:56:20 · 459 阅读 · 0 评论 -
c++ 指针与数组
[cpp] view plaincopyint *ip = new int; char s[] = "abcd"; char* p = "abcd"; cout cout cout// s = p; //error C2440: '=' : cannot convert转载 2015-03-23 13:40:56 · 423 阅读 · 0 评论 -
C++中引用和指针的区别
c++ 指针 引用转载 2015-10-08 13:03:37 · 345 阅读 · 0 评论