- 博客(22)
- 收藏
- 关注
原创 6 过滤数据
1 使用WHERE子句 数据库中一般包含大量的数据,很少需要检索表中所有的行。通常会根据特定操作或者报告的需要提取表数据的子集。只检索所需数据需要指定搜索条件,搜索条件也称为过滤条件。在SELECE语句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后给出SELECT prod_id,prod_price,prod_name FROM products WHERE prod_price=2.5 ; WHERE子句的位置:在同时使用ORDER BY...
2020-12-16 15:32:06
212
1
原创 7 数据过滤
1 组合WHERE子句 为了进行更强的过滤控制,MySql允许给出多个WHERE子句。1.1 AND操作符SELECT prod_id,vend_id,prod_price,prod_name FROM products WHERE vend_id=1003 AND prod_price >=4;AND 用在WHERE子句中的关键字,用在指示满足所有给定条件的行1.2 OR操作符SELECT prod_id,vend_id,prod_price,prod_nam...
2020-12-16 15:29:38
153
原创 8 用通配符进行过滤
1 LIKE操作符通配符(wildcard):用来匹配值的一部分的特殊字符。搜索模式(search pattern):由字面值、通配符或者连着组合成的搜索条件。前面的所有操作符都是针对已知值进行过滤。利用通配符可创建比较特定的数据的搜索模式。为在搜索子句中使用通配符,必须使用LIKE操作符。LIKE指示MySql后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。1.1 百分号(%)通配符在搜索中,%表示任何字符出现任意次数。SELECT prod_id,prod_name,prod.
2020-12-03 20:14:30
235
原创 二叉树---2
1、二叉树的非递归遍历(1)非递归先序遍历 :(根--左---右) 思路:根据先序遍历访问的顺序,优先访问根结点,然后再分别访问左孩子和右孩子。即对于任一结点,其可看作是根结点,因此可以直接访问,访问完之后,若其左孩子不为空,按照相同规则访问它的左子树;当访问其左子树完,再访问它的右子树; 对于任一结点: (1)访问结点ptr,并将结点ptr入栈; (2)判...
2018-07-10 11:11:10
232
原创 两个栈实现一个队列和两个队列实现一个栈
栈的特性:先进后出(FILO); 队列的特性:先进先出(FIFO)1、两个栈实现一个队列(1)思路:入栈时,直接压入栈1中;如果栈1满了,判断栈2是否为空,若为空,则将栈1元素全部倒入栈2,再入栈;若栈2不 为空,则不能再入元素; 出栈时,判断栈2是否为空,若栈为空,则将栈1中的元素倒入栈2,否则直接弹出栈2中的元素...
2018-07-09 21:46:10
168
原创 排序算法-2
1---希尔排序(1)由于直接插入排序在记录本身就是基本有序的情况下,我们只需要少量的插入操作就可以完成整个记录的排序工作,此时直接插入效率较高。于是,我们希望对直接插入排序进行改进来提高效率;*将原本有大量记录数的记录进行分组。分割成若干个子序列,此时每个子序列的记录个数就比较少,然后在这些子序列内分别进行直接插入排序,当整个序列都基本有序时,注意只是基本有序时,再对全体记录进行一次直接插入排序...
2018-07-09 19:09:17
154
原创 排序算法-1
3---直接插入排序(1)基本操作:将一个记录插入到已经排好的有序表中,从而得到一个新的、记录数增1的有序表;(2)代码实现:#include<iostream>using namespace std;typedef int ElemType;//3---直接插入排序void InsertSort(ElemType* ar,int len){ for (int i = ...
2018-07-08 11:28:57
162
原创 二叉树---1
一、二叉树二叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两颗互不相交的,分别称为根结点的左子树和右子树的二叉树;二、二叉树的性质(1)性质1:在二叉树的第i层上至多有个结点(2)性质2:深度为k的二叉树至多有个结点(k≥1)(3)性质3:对任何一颗二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则no=n2+1;...
2018-07-06 19:25:43
230
转载 volative、mutable和explicit关键字
1、volatile关键字volatile的本意是“易变的”,volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使
2017-11-21 15:30:29
343
原创 i++与++i是一样的吗?
在c语言中,我们经常使用i++和++i,可能都会以为它们是一样的,就是对i进行了加1操作。实际上,对于编译器来说它们又意味着什么?会有何不同呢? 之前我都是认为:i++和++i都是对i进行了加1操作,唯一有区别的是:i++ :先取i的值,再对i加1++i :先对i加1,再取i的值但是仅仅是这些不同吗?通过下面的一段示例代码,你就会急迫地想知道:编译器到底是如何处
2017-10-25 15:02:00
1921
1
原创 c++带默认值参数的函数
带默认值参数的函数即在函数定义或声明时,我们可以赋予函数参数默认值。所谓默认值就是在调用时,可以不写某些参数的值,编译器会自动把默认值传递给调用语句中。如果在函数的声明和定义中同时设置同一个参数的默认值时,则要求默认值设置是相同。int sum(int a = 10, int b = 20);int sum(int a, int b){ return a + b;}int main(
2017-10-21 10:26:51
1372
原创 inline(内联)函数
inline函数一、定义 inline函数是指用inline关键字修饰的函数。二、使用 内联函数是在程序运行过程中没有函数的调用开销,而是在函数的调用点将函数的代码直接展开的。从源代码层来看,有函数结构
2017-10-20 22:16:09
362
原创 引用与指针的区别
int a = 10; int *p = &a;//指针 int& b = a; //引用可以从上面简短的代码中看到,在指针和引用中都有&操作符,两个的区别是:当&前面有类型时(例如int),这种情况属于引用。接下来,可以看一下对应的汇编代码:从汇编上来看,指针与引用是相同的,没有区
2017-10-20 21:28:39
206
原创 c语言与c++中const的区别
首先声明一下:const的不同是由于编译器对const的处理方法不同造成的。因此,我们所接下来所说的差异是分别针对c89和c++99版本的编译器。1、 c语言中的const #include void main() {const int a = 10;//int a
2017-10-20 20:29:05
754
原创 函数的栈帧过程
几乎所有的函数都使用了栈,没有栈就没有函数,没有局部变量。在程序运行过程中,栈保存了一个函数调用所需要的维护信息,也可称为堆栈帧或者活动记录。堆栈帧一般包括以下几个方面: (1)函数的返回地址和参数(2)临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量(3)保存的上下文:包括在函数调用前后需要保持不变的寄存器在I386中,一个函数的活动记录用es
2017-10-18 18:56:54
297
原创 线程
一、线程 1、概念 进程内部的一条执行序列。进程内部至少有一条执行线程,即main函数的执行体。进程内部可以有多条线程,main函数的线程称之为主线程,其他线程称之为函数线程。函数线程是由主线程通过系统调用函数创建的。 2、与进程的区别: (1)进程是资源分配的最小单位,线程是调度(执行)的最小单位 (2)第7点 (3)线程切换比进程切换消耗小3、线程的
2017-09-30 18:48:45
180
原创 Linux 下的IPC控制命令
Shell环境控制IPC IPC对象一经创建,系统内核即会为该对象分配相关数据结构。为了方便对IPC对象的管理,Linux系统提供了专门的IPC控制命令,主要包括查看IPC对象信息的ipcs和删除IPC对象的ipcrm。1、查看IPC对象信息 ipcs [参数](1)参数说明: -a:查看全部IPC对象信息
2017-09-25 16:56:56
1268
原创 进程间通信——消息队列
一、消息队列的基本概念 消息队列是存储消息的线性表,是消息在传输过程中的容器。消息队列一经创建,即可以向队列中写入指定类型的消息,其他进程则可以从该队列中取出指定类型的消息。 1、1 队列 在数据结构中,队列定义为一种运算受限的线性表。它允许在队列中的一端进行插入,而在队列的一端进行删除。队列的数据输入输出是按照“先进先出”的原则进行的。队列的结
2017-09-23 19:33:49
309
原创 进程间通信——共享内存
一、共享内存 共享内存是IPC提供的另一种进程间通信机制。共享内存是通过将内核分配的共享存储区映射到进程的地址空间实现的。它允许两个或者多个进程共享一个给定的存储区。由于数据不需要在客户进程和服务器进程之间复制,所以这是最快的一种IPC. 两个进程通过共享内存通信是指:同一块物理内存被映射到多个进程各自的进程空间,各个进程都可以对共享内存中的数据进行更新。
2017-09-22 21:03:37
442
原创 进程间通信——管道文件
一、进程间通讯1、概念: 每个进程各自有不同的进程地址空间,任何一个进程的全局变量在另一个进程中都不能访问,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,P1进程把要交换的数据从用户空间拷到内核缓冲区,P2进程再从内核缓冲区把数据读走。如下图所示。内核提供的这种机制称为进程间通信(IPC,InterProcess Communication )
2017-09-19 15:49:20
697
转载 《机器学习实战》——第3章代码详解(决策树)
from math import logimport operator def createDataSet(): # 创建数据集 dataSet = [[1,1,'yes'], [1,1,'yes'], [1,0,'no'], [0,1,'no'],
2017-08-22 16:03:26
1221
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人