delete

C++基础总结(4)-----指针

耗尽温柔 提交于 2020-02-01 01:04:08
指针是一个变量,其存储的值是地址,而不是值本身。 (有点类似于组成原理里面的变址寻址) 在讨论指针之前,我们先来看看如何寻找常规变量的地址。只需对变量引用取地址符(&)就行了。 如下面一段代码: #include <iostream> using namespace std; int main() { int dounts=6; double cpus=5.6; cout<<"dounts = "<<dounts<<", address is "<<&dounts<<endl; cout<<"cpus = "<<cpus<<", address is "<<&cpus<<endl; return 0; } *运算符被称为间接值或者解除引用运算符。将其用于指针,便可以得到该地址存储的值。 duck变量为int型变量,其分配的地址是1000,里面存储的值是12,而birding是一个int型指针变量它本身的地址是1006,而在它里面存储的值duck的地址1000。 所谓指针指的是存储的其他变量的地址。 指针的声明和初始化 int *ptr;//声明一个int型指针 *两边的空格是可选的。 传统上,C程序员使用这种格式。 int *ptr;//强调*ptr是一个int类型 C++程序员通常使用下面这种方式 int* ptr; 强调int*之一中指向int类型的指针

File delete不能删除问题

╄→尐↘猪︶ㄣ 提交于 2020-01-31 22:24:15
注意事项有下面几点 1.检查是否是文件流没有关闭。 假设没有关闭的话文件当前是被占用状态。是删除不了的。 2.是否关闭全然。比方你循环创建好多文件流,仅仅在finally 模块写了个关闭流的方法,这样写非常可能仅仅关闭最后一个文件流。 导致除了最后一个文件能删除。其余都不能删除。 4.文件是否存在。file.exists() 检查下。 来源: https://www.cnblogs.com/mqxnongmin/p/10888340.html

什么是RESTful?

老子叫甜甜 提交于 2020-01-31 07:25:55
一.REST起源 REST(Representational State Transfer)表象化状态转变(表述性状态转变),在2000年被提出,基于HTTP、URI、XML、JSON等标准和协议,支持轻量级、跨平台、跨语言的架构设计。是Web服务的一种新的架构风格(一种思想)。 二.REST架构的主要原则 对网络上所有的资源都有一个资源标志符。 对资源的操作不会改变标识符。 同一资源有多种表现形式(xml、json) 所有操作都是无状态的(Stateless) 符合上述REST原则的架构方式称为RESTful   什么是无状态性: 使得客户端和服务器端不必保存对方的详细信息,服务器只需要处理当前的请求,不需了解请求的历史。可以更容易的释放资源,让服务器利用Pool(连接池)技术来提高稳定性和性能。 三.RESTful介绍 RESTful是一种常见的REST应用,是遵循REST风格的web服务,REST式的web服务是一种ROA(面向资源的架构)。 1.RESTful资源操作 http方法 资源操作 幂等 安全 GET SELECT 是 是 POST INSERT 否 否 PUT UPDATE 是 否 DELETE DELETE 是 否 2.接口示例: 2.1.传统URL请求格式: http://127.0.0.1/user/query/1 GET 根据用户id查询用户数据

Python全栈(四)高级编程技巧之2.类与对象深度问题与解决技巧

我怕爱的太早我们不能终老 提交于 2020-01-31 03:47:29
文章目录 一、派生内置不可变类型并修改其实例化行为 二、创建大量实例节省内存 三、Python中的with语句 四、创建可管理的对象属性 五、类支持比较操作 六、环状数据结构中管理内存 一、派生内置不可变类型并修改其实例化行为 引入: 我们想自定义一种新类型的元组,对于传入的可迭代对象,我们只保留其中int类型且值大于0的元素,例如: IntTuple([2,-2,'jr',['x','y'],4]) => (2,4) 如何继承内置tuple 实现IntTuple? 自定义IntTuple: class IntTuple ( tuple ) : def __init__ ( self , iterable ) : for i in iterable : if isinstance ( i , int ) and i > 0 : super ( ) . __init__ ( i ) int_t = IntTuple ( [ 2 , - 2 , 'cl' , [ 'x' , 'y' ] , 4 ] ) print ( int_t ) 打印 Traceback ( most recent call last ) : File "xxx/demo.py" , line 7 , in < module > int_t = IntTuple ( [ 2 , - 2 , 'cl' , [ 'x'

C++内存管理与注意事项

被刻印的时光 ゝ 提交于 2020-01-30 13:32:11
内存是程序运行必不可少的资源,由操作系统分配和管理。作为程序员,我们通常做的只能是申请和归还。本文主要介绍C++内存的申请和释放(归还),以及注意事项。 1 申请和释放内存的运算符 申请 new 释放 delete 2 方法 申请内存: int *p = new int; // 定义一个指针,来接收new申请到的地址 释放内存: delete p; 块内存的申请和释放: //申请 int *arr = new int[10]; //释放 delete []arr;   3 注意事项 3.1 配套使用 我们知道在c语言中内存的申请和释放是malloc 和free完成: //申请 void *malloc(size_t size); //释放 void free(void *memblock); 但是在C++中使用的是new和delete;如果使用C语言的方式申请,就得用C语言的方式释放;使用C++的方式申请,就得用C++的方式释放;配套使用。否则无法通过编译。 3.2 内存可能申请失败,需要有异常处理 int *p = new int[1000]; if (NULL == p) { //内存分配失败 } 3.3 释放内存需要将指针置为空 int *p = new int[1000]; if (NULL == p) { //内存分配失败 //异常处理 } delete []p; /

mysql 删除表中记录

烂漫一生 提交于 2020-01-30 09:08:47
一、清除mysql表中数据 delete from 表名; truncate table 表名; 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。 效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。 delete的效果有点像将mysql表中所有记录一条一条删除到删完, 而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。 二、删除表中的某些数据 delete from命令格式:delete from 表名 where 表达式 例如,删除表 MyClass中编号为1 的记录: 复制代码 代码如下: mysql> delete from MyClass where id=1; 三、修改表 1.选择数据库 >use 数据库名; 2.查询所有数据表 >show tables; 3.查询表的字段信息 >desc 表名称; 来源: https://www.cnblogs.com/hehexu/p/7898701.html

数据库存储引擎innodb与myisam

怎甘沉沦 提交于 2020-01-30 07:22:40
一、innodb与myisam的区别与取舍、innodb引擎的4大特性 如下是两者的索引图: 两者的 相同点 :两者都是mysql的常用引擎;两者的索引都是B+树 两者的 区别 : 事务:InnoDB支持,MyISAM不支持 外键:InnoDB支持,MyISAM不支持 索引类型:InnoDB是聚簇索引(叶子节点存数据),MyISAM是非聚簇索引(叶子节点存指针) 插入速度:MyISAM批量插入速度快 查询行数:MyISAM的查询性能会比InnoDB强,InnoDB查询表行数要全表扫描,MyISAM存在变量中直接读取 内存空间使用率:InnoDB比MyISAM高 全文索引:MyISAM支持。Innodb不支持,5.7以后才支持 压缩查询:MyISAM表格可以被压缩后进行查询操作 锁级别:InnoDB支持表级锁+(默认)行级锁,而MyISAM支持表级锁 主键:InnoDB必须有,MyISAM可没有 存储文件:Innodb存储文件有frm、ibd,而Myisam是frm、MYD、MYI PS1:InnoDB的 行锁是实现在索引上 的,而不是锁在物理行记录上。潜台词是,如果访问没有命中索引,也无法使用行锁,将要退化为表锁。 举个例子:t_user(uid, uname, age, sex) innodb; uid PrimaryKey,无其他索引 update t_user set age

MongoDB应用学习

天大地大妈咪最大 提交于 2020-01-30 06:29:29
创建数据库可以直接使用use test 但是这个时候show dbs是看不到的,只有加入了数据才算真正创建了。 collection对应mysql中表的概念 collection中每条数据在生成的时候会自行生成_id的字段 db.pet.find() 相当于select * from pet > db.pet.find() { "_id" : ObjectId("513d489ff596e5c47cf26c28"), "Id" : "1", "Name" : "cat1", "skill" : "2" } db.pet.find(<json>) 代表select * from pet where XXX > db.pet.find({_id : ObjectId("513d489ff596e5c47cf26c28")}) { "_id" : ObjectId("513d489ff596e5c47cf26c28"), "Id" : "1", "Name" : "cat1", "skill" : "2" } db.pet.findOne({'Id': '2'}) 只查找一个 增删改查分别对应 save remove update find/findOne db.currentOp来获取当前操作线程的相关信息 创建索引有两种方法: db.system.indexes.insert(XXX

mysql报【unknown table in mulit delete】错的原因和解决办法

怎甘沉沦 提交于 2020-01-30 01:23:58
今天写一个多表连接删除的DELETE语句,在执行的时候发现报错:unknown table in mulit delete,这里记录下原因。 原来报错的DELETE语句: delete sys_project from sys_project as aa left join ( select min(id) as id from sys_project group by sysCode ) as bb on aa.id = bb.id where bb.id is null 要注意的是,这样的语法在SQL Server是支持的,并不会报错。 实际上,这是因为MySQL限制了,如果你为一个表指定了别名,那么当你再次使用这个表的时候,必须通过别名来使用该表。在上面的DELETE语句中,我给sys_project指定了别名aa,可是之后再次使用sys_project表的时候却没有通过别名aa去访问该表,因此MySQL就会报出这个在删除多行时找不到表的错误。 修改的方法只要将sys_project表的直接使用改为使用别名aa访问即可: delete aa from sys_project as aa left join ( select min(id) as id from sys_project group by sysCode ) as bb on aa.id = bb.id

Mysql高级四 之 触发器

纵然是瞬间 提交于 2020-01-29 23:30:56
Mysql高级四 之 触发器 1.1介绍 触发器是与表有关的数据库对象,指在insert/update/delete之前或之后,触发并执行触发器中定义的SQL语句集合.触发器的这种特性可以协助用在数据库端确保数据的完整性,日志记录,数据校验等操作. 使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的.现在触发器还支持行级触发,不支持语句级触发. 触发器类型 NEW和OLD的使用 INSERT触发器 NEW表示要或者已经新增的数据 UPDATE触发器 OLD表示修改之前的数据,NEW表示将要或已经要或已经修改后的数据 DELETE触发器 OLD表示将要或者已经删除的数据 1.2 创建触发器 语法结构: create trigger trigger_name before / after insert / update / delete / on tb1_name [ for each row ] -- 行级触发器 begin trigger_stmt ; -- 触发器的具体内容 end 示例: 需求: 通过触发器记录emp表的数据变更日志,包含增加,修改,删除 首先创建一张日志表: create table emp_logs ( id int ( 11 ) not null auto_increment , operation varchar ( 20