自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 问答 (1)
  • 收藏
  • 关注

原创 MYSQL---查询数据

查询数据1.基本查询语句 select 属性列表 from 表名和视图列表 [where 条件表达式1] [group by 属性名1[having 条件表达式2]] [order by 属性名2[ASC|DESC]] where子句表示按指定条件查询;没有的话就查询所有记录。 group by是按照属性名指定的字段进行分组,如果有having关键字,则只输出符合条件表达式2的信息。

2016-06-30 23:12:45 690

原创 MYSQL-----触发器

触发器触发器是由 INSERT,UPSET,DELETE等事件来触发某种特定操作。 满足触发器的触发条件时,数据库系统就会执行触发器中定义的程序语句。这样可以保证操作的一致性。 example: 当学生表中新增了一个学生的信息时,学生人数的总数也应该增加,因此我们可以在这里设置一个触发器,当增加一个记录时,执行一次计算人数的操作.创建触发器1)创建只有一个执行语句的触发器 create

2016-06-28 17:32:21 635

原创 MYSQL-----视图

视图 视图是从一个或者多个表中导出来的表,是一种虚拟存在的表,视图就像一个窗口,通过这个窗口可以看到对自己有用的数据。使用户的操作更方便,保证了数据库的安全性。视图依赖原来表中的数据,一但之前表中的数据发生改变,显示在视图中的数据也会发生变化。如果需要经常从多个表中查询指定字段的信息,通过视图可以显示这些字段的数据。1.创建视图 创建视图是在数据库的表上创建视图,视图可以创建在一张表上也可

2016-06-28 12:04:01 699

原创 MYSQL-----索引

索引 (索引是对表上一列或者多列进行排序的结构,提高对表中数据的查询速度,不同存储引擎所支持的索引数不同,至少支持16个索引,索引长度256字节,索引有两种存储类型,Btree和hash,一般默认为btree)索引的优点是对于那些有依赖关系的父表和子表在进行联合查询的时候,会提高查询速度。缺点是创建和维护需要耗费时间。耗费时间的数量随数据量的增加而增加。索引需要占用一定的物理空间。在对数据进行增删改

2016-06-26 20:18:14 494

原创 MYSQL---数据库中表的操作

在数据库中创建表1.首先选中一个数据库 use example;//example为数据库名2.创建表: create table example0(id int,name varchar(20),sex boolean);//example0为表名 属性之间用逗号分隔开在创建表的同时考虑完整性约束条件 主键用来标识唯一记录,表中主键值互不相同1)设置表的单字段主键 create tabl

2016-06-25 12:02:51 955

原创 MYSQL-----数据库的操作及存储引擎的选择

下面说到的mysql数据库的操作都是在linux环境下,由于时间有限,就不截图上传,大家可以在自己Linux系统下进行操作。(前提保证你的linux平台安装了mysql数据库)1.数据库的操作: 1)登陆数据库 在root用户下,service mysqld start启动数据库,键入mysql即可进入。出现mysql>即成功2)创建数据库

2016-06-25 11:47:25 532

原创 STL中部分函数的实现

1.迭代器 普通迭代器: const Container::iterator it = con.begin(); int *const p; 常量迭代器:只能读不能修改 调用*元运算符重载,返回值为const 1)正向迭代器 Container::const_iterator it; begin() end() 2)逆向迭代器 Container::const_rev

2016-06-22 22:42:10 467

原创 STL的应用

#include <iostream>#include <deque>#include <list>#include <vector>#include<iterator>#include<fstream>#include <functional>#include <algorithm>using namespace std;template<typename Container >

2016-06-20 18:15:02 397

原创 智能指针---shared_ptr和weak_ptr

智能指针主要解决被多个对象引用时,资源如何释放的问题。下面介绍一下boost库中的shared_ptr和weak_ptr:Shared_ptr:当进行拷贝和赋值操作时, shared_ptr所指向的对象的引用计数都会增加,一旦变为0,就会自动释放自己管理的对象。(shared_ptr所指向的对象有一个被释放时,引用计数就会减1)Weak_ptr: weak_ptr是一种不控制所指向对象生存周期的智能

2016-06-20 11:46:13 1331

原创 STL库

近容器:char buff[1024] string bitset(操纵位) Vector自定义类型实例化 ——- T()伪构造 Vector内置类型实例化 ——– 0 Vector和deque区别: 搜索和中间插入时用vector 在头部插入用deque,vector成倍增长,可能会造成空间浪费。 Vector只有push_back ()和

2016-06-19 22:58:40 412

原创 关于操作系统的几个常被问的问题

在32位x86体系 32位linux内核下1.地址映射由谁来完成? 内核(GDT LDT PD PT)-硬件(MMU) MMU完成从线性地址到物理地址的映射 2.为什么说32位的Linux 的逻辑地址和虚拟地址是一样的? 逻辑地址 + 段基址 = 虚拟地址 如果一样的话,那就说明基地址为0.那么为什么基地址会为0?原因是在进行地址映射的时候,分页的效率明显高于分段,但是由于继承

2016-06-18 21:52:20 691

原创 多重继承

多重继承:一个派生类多次继承同一个基类为解决成员重叠问题,派生类有基类的多份数据,引入虚基类,虚继承。所有从基类直接继承的类采用虚继承方式大家可以找下这个图和上图的区别哦:虚基类:当基类被继承时,在基类的继承方式前加上关键字virtual,被虚继承的类是虚基类(Base). 继承了虚基类的类对象中有一个虚基类指针:vbptrvbptr到虚基类数据成员的偏移量一般说32或64位下字节大小不同是与编译

2016-06-13 22:02:30 483

原创 迭代器

//迭代器的编写Cstring 嵌套类(访问私有成员) 类似普通指针 遍历容器includeincludeusing namespace std;class Cstring { public: Cstring(char *p=NULL)//构造函数 带一个参数或不带参数的构造 { if (p != NULL) {

2016-06-12 23:28:54 352

原创 继承和多态

进程在创建的时候先是创建虚拟地址空间,并不是真正的一块空间,而是创建了一个数据结构(《程序员的自我修养》第6章 进程的创建)继承和多态: 1)继承就是对代码的复用2)由于构造和析构只在自身所在的类的作用域下起作用,因此基类的构造函数和析构不能被继承3) 继承方式有三种: 公有继承(public)保护继承(protect)私有继承(private)当继承方式为公有继承时,基类的public pro

2016-06-11 21:22:15 681

原创 linux下的分段分页----地址映射

首先我们要注意的是虚拟空间分为内核空间和用户空间。IA32下内核空间的地址转换:1. 从逻辑地址到线性地址的转换对于Linux来说,基本不使用分段的机制,或者说,Linux中的分段机制只是为了兼容IA32的硬件而设计的。Linux内核的设计并没有全部采用Intel所提供的段方案,仅仅有限度地使用了一下分段机制。这不仅简化了Linux内核的设计,而且为把Linux移植到其他平台创造了条件。在 IA32

2016-06-10 17:08:24 1733

原创 运算符重载-Cstring

这里实现的Cstring就是C++库中的近容器stringclass Cstring{public: Cstring(char *p=NULL)//构造函数 带一个参数或不带参数的构造 { if (p != NULL) { mpstr=new char[strlen(p)+1]; strc

2016-06-08 14:00:24 901

原创 运算符重载

运算符重载实质就是:使得对象的运算和内置类型的表现一致隐式生成的临时对象是一个常对象,接受一个隐式生成的临时对象, 使用过程中能看见类名就是显示生成,否则就是隐式生成 返回当前函数的引用可以进行连续的赋值 如果返回的是局部变量的地址,返回值类型不能是引用,这样不安全。复数有它的实部和虚部:private: int mreal; int mimage;1.加法运算符的重载: 对

2016-06-07 20:53:18 341

原创 类模板

在编译阶段,类名不产生符号。1.类模板的特例化:类模板的完全特例化和类模板的部分特例化//类模板的完全特例化template<>class A<int,double>{ int a; double b;};//类模板的部分特例化template<typename T>calss B<int,T>{ int a; T b;};2.同一模板实例化的两种不同

2016-06-04 15:34:36 360

原创 函数模板

1)模板的编译过程: 先扫描模板名——–再依次遍历成员名,成员方法声明,成员变量,嵌套类 2)类:抽象一个实体 模板:抽象一个类型 3)模板的关键字:templatetemplate<typename T,typename E>//模板参数列表4)编译阶段模板不参与编译,因为模板中的类型不确定,无法生成符号。5)调用模板: 模板名 <T , E > (10,20)模板在被调用的时候,会

2016-06-03 21:09:04 439

原创 当函数中返回值为值,指针,引用时,是如何带出和接收的?

首先我们需要知道的是,当返回一个值,指针,引用时(小于八个字节均可以由寄存器带出)需要注意的是,由于举例,下面的例子中返回了局部变量的地址,而这是有风险的,不能返回临时的局部的地址或引用。仅供思路分析的参考1.返回内置类型的值,引用,指针,分别用指针,值,引用接收的情况。1)通过寄存器返回一个值 2)通过寄存器带出,返回一个指针。 3)返回引用时需要解引用,返回指针时只需要返回一个地

2016-06-02 08:06:54 7133

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除