C++核心编程
1 内存分区模型 C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理 全局区:存放全局变量、静态变量以及常量 栈区:由编译器自动分配释放, 存放函数的参数值、局部变量等 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 内存四区意义: 不同区域存放的数据,赋予不同的生命周期, 增加编…
C++提高编程
1 模板 1.1 模板的概念 模板就是建立通用的模具,大大提高复用性 模板的特点: 模板不可以直接使用,它只是一个框架 模板的通用并不是万能的 1.2 函数模板 C++另一种编程思想称为泛型编程,主要利用的技术就是模板 C++提供两种模板机制:函数模板和类模板 1.2.1 函数模板语法 函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以…
LeetCode hot100@数组
53. 最大子数组和❌ 贪心:不能让“连续和”为负数的时候加上下一个元素(因为直接把前面这一堆和为负数的子串抛弃就回来,后面怎么也会比加上个负数更大),而不是不让“连续和”加上一个负数(加上负数也没事,只要整体还算大) class Solution { public: int maxSubArray(vector<int>& n…
LeetCode hot100@二分查找
35. 搜索插入位置✅ 二分模板题 class Solution { public: int searchInsert(vector<int>& nums, int target) { int left = 0, right = nums.size() - 1, mid; while(left <= right) { mi…
LeetCode hot100@双指针
双指针法:通过两个指针在一个for循环下完成两个for循环的工作,一般是将O(n^2)的时间复杂度,降为O(n) 283. 移动零✅ 简单模拟 不改变数组内元素的相对位置 复杂度O(n) class Solution { public: void moveZeroes(vector<int>& nums) { int slow …
C++11常用新特性
https://zhuanlan.zhihu.com/p/139515439 范围基for循环 范围基for循环(Range-based for loop)是 C++11 引入的一种简化的循环结构,用于遍历容器(如数组、向量、集合、映射等)中的元素 基本语法: for (declaration : container) { // 对每个元素执行的操…