C++核心编程
C++核心编程本阶段主要针对C++==面向对象==编程技术做详细讲解,探讨C++中的核心和精髓。
1 内存分区模型C++程序在执行时,将内存大方向划分为4个区域
代码区:存放函数体的二进制代码,由操作系统进行管理的
全局区:存放全局变量和静态变量以及常量
栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等
堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收
内存四区意义:
不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程
1.1 程序运行前在程序编译后,生成了exe可执行程序,**未执行该程序前**分为两个区域
**代码区:**
存放 CPU 执行的机器指令
代码区是**共享**的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可
代码区是**只读**的,使其只读的原因是防止程序意外地修改了它的指令
**全局区:**
全局变量和静态变量存放在此.
全局区还包含了常量区, 字符串常量和其他常量也存放在此.
==该区域的数据在程序结束后由操作系统释放==.
示例:
//全局变量 ...
flowchar的使用
flowchart方向
TB - Top to bottom
TD - Top-down/ same as top to bottom
BT - Bottom to top
RL - Right to left
LR - Left to right
节点形状
正常矩形
flowchart TB id1[this is a rectangle node]
圆角矩形
graph TB id1(this is a node with round edges)
跑道形
graph TB id1([this is a stadium-shaped node])
子例程
flowchart TB id[[this is a node in a subroutine shape]]
圆柱形
flowchart TB id1[(database)]
圆形
flowchart TB id1((this is a node in the form of a circle))
不对称形
flowchart TB id1>this is a node i ...
无题
文件输入输出fstream创建对象可用于输入输出
ifstream创建对象用于输出,即从文件读取数据
ofstream创建对象用于输入,向文件输入数据
文件打开
模式
描述
ios::app
写入都追加到文件末尾
ios::ate
文件打开后定位到文件末尾
ios::in
打开文件用于读取
ios::out
打开文件用于写入
ios::trunc
如果该文件已经存在,其内容将在打开文件之前被截断,即把文件长度设为 0。
以上模式可以组合使用。
文件关闭graph TBA[开始] --> B[从键盘输入10个整数]B --> C[将前5个整数存放到first.dat]C --> D[将后5个整数存放到second.dat]D --> E[从second.dat读取5个整数]E --> F[存放到first.dat文件原有数据的后面]F --> G[从first.dat读取10个整数]G --> H[升序排列]H --> I[写回second.dat]I --> J[输出second.dat的所有整数]J ...
真情
之前看三体的时候,我还在上高中,并不真正理解叶文洁为什么要毁灭人类,我对她感到揪心,感到难以理解。在之后程心优柔寡断害的人类沦落为三体人的殖民地,我感到些许愤怒。
后来我看到了社会上的一些不公,看到战争导致的狼藉,看到了政客为了私利而草菅人命、满口谎言。我愤世嫉俗,我无能为力。偶然间,我也会想,就这样的烂世界,反正都要化为一堆土,大家一起毁灭吧,哈哈。但我最终没有这样想,我想,人间有很多真情在。母亲看着孩子在床头睡得正香,丈夫在外工作回家带来的一些小惊喜,为了
世界上到处都是不公,好人不一定有好报,坏人也有过的好的。对那些可恨的人,我会感到可怜,我相信人是本善的,不过从出生后,我们就在学习外界。那些可恨必然有原因,不过他们依然可恨,不然对不起那些被他们伤害的人。可是,我对那些恶人不能受到应有的惩罚而愤怒,他们
一具体就深刻
最近很焦虑,可能因为自己一直在堕落,我不知道自己想要学什么,未来很迷茫。其实是自己沉迷在网络世界无法自拔,享受着短暂的多巴胺带来的快感。
C+笔记(2):const和static
const用法常量变量声明:const int a = 10; // a 是一个常量变量,值不可改变
常量指针:int x = 10, y = 20;const int* p1 = &x; // p1 指向的值不可修改,但 p1 本身可以修改int* const p2 = &x; // p2 指向的地址不可修改,但 p2 指向的值可以修改const int* const p3 = &x; // p3 既不可以修改指向的地址,也不可以修改指向的值
函数参数声明为常量:void func(const int x) { // 函数内部不能修改 x 的值}
类数据成员声明为常量:class MyClass {public: MyClass(int value) : m_value(value) {}private: const int m_value; // 类内部常量成员};
const 成员函数:class MyClass {public: ...
《长安的荔枝》
一个社畜的挣扎2024.5.3凌晨读完这本书,原意是睡前读一会,结果一发不可收拾,剧情刚好到高潮处,跌宕起伏,让人不禁揪起心来。一个九品小芝麻官被安排了不可能完成的任务,从岭南运输鲜荔枝去到长安,全程五千多公里,路上险峻不可一语。刚贷款买完房子的李善德被骗进这一大坑内。
从一开始彻底绝望,去到岭南也不过想知道“就算失败,我也想知道,自己倒在距离终点多远的地方”。孤注一掷,全力以赴,终究是虔诚感动了上苍,也终究是李善德自己的本事天大。
《长安的荔枝》马伯庸21个笔记
◆ 第二章
2024/4/30 发表想法怎么说呢,我们跟李善德都挺像的。
就算失败,我也想知道,自己倒在距离终点多远的地方。
◆ 第三章
2024/4/30 发表想法唉,老实人啊
假如朝廷开一个忍气吞声科,他能轻松拿到状元。
假如朝廷开一个忍气吞声科,他能轻松拿到状元。
这一刻,他忘记了等待的贵妃,忘记了自己未知的命运,忘记了长安城市的香积贷,只想纵情歌舞,像当年一样跳一支无忧无虑的胡旋舞。
◆ 第四章
说到这里,他突然再一次咳嗽起来,极其剧烈 ...
二分算法
一分为二,化繁为简
思路
预处理–数组有序,不是有序则 先排序
二分查找–将数组一分为二
后处理–剩余一半数组中查找可行的范围
三个模板
模板一// 二分查找 --- [left, right]// 数组已经是有序的了!int binarySerach1(int[] nums, int target) { if (nums == null || nums.length == 0) { return -1; } int left = 0, right = nums.length - 1; while (left <= right) { // 防止溢出 等同于(left + right)/2 int mid = left + (right - left) / 2; if (nums[mid] == target) { return mid; } else if (nums[mid] > t ...
《受戒》
旧时的江南 这本书是第二次看了,上次看是因为在语文课外读物中看到受戒这篇小说,特别喜欢其中无虑的语言,所以去看了他的小说集。第二次看第一感觉不是对江南的感觉,而是高中时候对江南向往的回忆。
无意看到了汪曾祺的小说,一下把我拉回22年的那个暑假,高二升高三的压力还未感受,百无聊赖做一些题后,在书苑里无意看到他的小说集。那天下午雨下的很大,下的匆忙,路上满是避雨的人,书苑旁公园的人也纷纷来屋檐下躲雨。我也沉浸在那个汪曾祺描画的南方的水乡,也有一点身临其境的感觉了。 半透的玻璃,能看到小孩子对着大雨好奇的眼神,我好久没见过那么大的雨了,也好久没那么想念一场雨了。记得小时候,那也是一个下午,家里莫名停电,母亲在和面蒸馍,姐姐给我推荐一个电影,千与千寻。小时候哪里看得懂,只是对电影的天马行空感到奇妙。大雨,或者是夏雨,我对你满是喜欢。匆忙的来,冲刷着空气,净化着炎热。 童年真的满是幸福啊…
一点一点的看完了这本书,很舒服,里面的人物都是立体的。
《受戒:汪曾祺小说精选》汪曾祺
◆ 点评
2024/4/29 认为好看在这日益加速的当代,看看旧时江南水乡,静 ...