new operator 我们平时使用的new是new操作符(new operator),就像sizeof一样是语言内置的,不能改变它的含义,功能也是一样的 比如: 相当于 new操作符总是做两件事: 1.调用相应的operator new分配内存 2.调用相应的构造函数 如下代码: operate ...
分类:
编程语言 时间:
2019-09-02 14:08:17
阅读次数:
106
map.clear() 只是把map清空了,但是内存没有释放,如果要释放内存不止是要clear()掉,还要和一个空的map来进行swap,将内存释放。 注意map中如果元素不是基本类型,也要进行内存释放,如指针,vector要尤其注意,否则map占的内存太大,会造成程序崩溃。 示例代码: ...
分类:
其他好文 时间:
2019-08-30 16:01:42
阅读次数:
66
1. Get和Post的区别 2. cookies和session的区别 3.HashMap和HashTable区别。 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。 HashMap是非线程安全的,只是 ...
分类:
编程语言 时间:
2019-08-29 23:24:27
阅读次数:
126
最近做一个事情,实现一个流程交互,其中主交互流程函数中,涉及较多的内存申请, 而健康的函数,都是在函数退出前将手动申请不再需要的内存释放掉, 使用很多方法,都避免不了较多的出错分支时,一堆的if free/delete,代码长而且不好管理 因此,利用C++对象离开作用域会自动调用析构函数的特点,在这 ...
分类:
编程语言 时间:
2019-08-24 18:42:45
阅读次数:
108
1、创建源2、选择流3、操作(写出)4、刷新缓存,避免数据驻留内存5、释放资源Filef=newFile("D:/d/t.txt");//文件不存在stream流会自动创建OutputStreamos=newFileOutputStream(f,true)//添加布尔类型true,会开启追加模式,默认为false。byte[]data=s.getBytes()//编码os.wr
分类:
编程语言 时间:
2019-07-24 15:11:37
阅读次数:
119
原文 一、HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。 HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentH ...
分类:
其他好文 时间:
2019-07-11 12:32:28
阅读次数:
80
题意 一颗有根树,每个点有黑白两种颜色和阀值ai,若它的子树中(不包括自己)的黑色数量大于ai,则产生一点贡献。每次将一个点的颜色取反,求每次修改后的贡献。n,q<=1E5。 思考 树剖后直接分块就行了。复杂度约为O((n+q)sqrt(nlogn)),但似乎更小? 代码 1 #include<bi ...
分类:
其他好文 时间:
2019-07-05 09:13:30
阅读次数:
83
1、内存的生命周期 无论你使用那种语言,内存的生命周期基本是都差不多:分配内存 —— 使用内存 —— 释放内存,以下是生命周期中每一步发生了什么的一个概述: Allocate memory —— 操作系统分配内存,允许你的程序使用它。在基础语言中(例如 C ),这是一个开发者自己处理的明确操作。然而 ...
分类:
其他好文 时间:
2019-07-05 00:08:15
阅读次数:
95
C语言问题观: 一、环境搭建问题:linux,(可以是w10下linux子系统);vim(notepad++),gcc编译器,gdb调试器,make自动编译工具,ddd分析工具和valgrind分析工具 二、输入输出问题:输出函数和输入函数 三、条件选择问题:if……else或switch……cas ...
分类:
编程语言 时间:
2019-06-21 18:30:30
阅读次数:
132
浅拷贝和深拷贝 在某些状况下,类内成员变量需要动态开辟堆内存,如果实行位拷贝,也就是把对象里的值完全复制给另一个对象,如A=B。这时,如果B中有一个成员变量指针已经申请了内存,那A中的那个成员变量也指向同一块内存。这就出现了问题:当B把内存释放了(如:析构),这时A内的指针就是野指针了,出现运行错误 ...
分类:
编程语言 时间:
2019-06-19 10:05:49
阅读次数:
123