#include <iostream>#include<string>#include <vector>#include <map>using namespace std; int main(){ vector<int> bgX{5, 10}; //方法1 bgX.erase(bgX.begin() ...
分类:
编程语言 时间:
2021-06-06 19:46:16
阅读次数:
0
浅拷贝和深拷贝 在某些状况下,类内成员变量需要动态开辟堆内存,如果实行位拷贝,也就是把对象里的值完全复制给另一个对象,如A=B。这时,如果B中有一个成员变量指针已经申请了内存,那A中的那个成员变量也指向同一块内存。这就出现了问题:当B把内存释放了(如:析构),这时A内的指针就是野指针了,出现运行错误 ...
分类:
编程语言 时间:
2020-12-29 11:24:32
阅读次数:
0
stl常用容器-string C++标准库定义了一种string类,定义在头文件<string> string封装了很多使用的办法: 查找find,拷贝copy,删除delete,替换replace,插入insert 不用考虑内存释放和越界,string管理char*分配的内存,每一次的string ...
分类:
其他好文 时间:
2020-12-25 12:10:04
阅读次数:
0
C++内存配置操作和释放操作如下: 1 class Foo{...}; 2 Foo* pf=new Foo; //配置内存,然后构造对象 3 delete pf; //将对象析构,然后释放内存 内存配置操作由 alloc:allocate() 负责,内存释放操作由 alloc:deallocate( ...
分类:
其他好文 时间:
2020-11-07 17:27:54
阅读次数:
21
1. 引用计数 1)当一个对象的引用被创建或者复制时,对象的引用计数加1;当一个对象的引用被销毁时,对象的引用计数减1. 2)当对象的引用计数减少为0时,就意味着对象已经再没有被使用了,可以将其内存释放掉。 2. 标记-清除 1)它分为两个阶段:第一阶段是标记阶段,GC会把所有的活动对象打上标记,第 ...
分类:
编程语言 时间:
2020-10-27 11:34:47
阅读次数:
23
线程的生命周期 1.新建 线程刚被创建时就处于新建状态,JVM为其分配内存,初始化成员变量 2.就绪 当线程调用了start()方法时,就处于就绪状态 JVM为线程创建了方法栈和程序计数器,等待线程调度器调度 3.运行 就绪状态的线程获取CPU资源,开始运行run()方法, 该线程进入运行状态 4. ...
分类:
编程语言 时间:
2020-07-09 22:26:35
阅读次数:
79
c语言中内存管理存在问题 静态内存分配: 局部变量 栈 全局变量 数据区 动态内存分配 堆 内存分配函数 malloc calloc realloc 内存释放 free 使用原则 用完了释放 问题1. 内存泄漏 ,用完了动态分配的内存就不释放,就产生内存泄漏 解决 :用完malloc 用free 问 ...
分类:
其他好文 时间:
2020-07-04 22:19:07
阅读次数:
72
拷贝构造函数生成新的类对象,而赋值运算符是给已有的对象重新赋值。 由于拷贝构造函数是直接构造一个新的类对象,所以在初始化这个对象之前不用检验源对象是否和新对象相同。而赋值运算符则需要这个操作,另外赋值运算中如果原来的对象中已有内存分配要先把内存释放掉。 *注意:当类中有指针类型的成员变量时,一定要重 ...
分类:
其他好文 时间:
2020-06-18 11:17:33
阅读次数:
79
Sql Server系统内存管理在没有配置内存最大值,很多时候我们会发现运行SqlServer的系统内存往往居高不下。这是由于他对于内存使用的策略是有多少闲置的内存就占用多少,直到内存使用虑达到系统峰值时(预留内存根据系统默认预留使用为准,至少4M),才会清除一些缓存释放少量的内存为新的缓存腾出空间 ...
分类:
数据库 时间:
2020-06-01 01:09:19
阅读次数:
128
直接上代码: var filePath = @"D:\Download\测试文档.xlsx";//要下载的文件地址,这个文件会被分成片段,通过循环逐步读取到ASP.NET Core中,然后发送给客户端浏览器 var fileName = Path.GetFileName(filePath);//测试 ...
分类:
Web程序 时间:
2020-05-20 10:49:13
阅读次数:
113