
C++
瑞行AI
这个作者很懒,什么都没留下…
展开
-
操作系统碎碎念
进程&线程 概念进程是现代计算机系统最成功最深刻的抽象概念之一,进程的目的主要是方便计算机的使用,不同的程序,可以看起来各自独立的运行在计算机上,就像自己在独占计算机一样。对现代的计算机使用者来说,进程就像空气一样稀松平常无时不刻不在使用,但进程不是计算机与生俱来的;进程的调度,切换,是操作系统最基本最重要的功能之一。进程的出发点并不是提高程序并行的效率,进程的切换,代价是比较高的,进程上下文的保存切换,还有一些缓存的切换,会使缓存命中下降。线程主要是从提高程序运行效率角度设计的,线程的主要特原创 2017-11-02 17:24:32 · 250 阅读 · 0 评论 -
C++标准模板类STL
【stack】1.empty() 堆栈为空则返回真2.pop() 移除栈顶元素3.push() 在栈顶增加元素4.size() 返回栈中元素数目5.top() 返回栈顶元素【vector】1.push_back() 在数组的最后添加一个数据2.pop_back() 去掉数组的最后一个数据3.at() 得到编号位置的数据4.begin() 得到数组头的指针5.end() 得到数组的最后一个单元+1的指针6.front() 得到数组头的引用7.back() 得到数组的最后一个单元的引原创 2019-08-18 14:00:06 · 738 阅读 · 0 评论 -
C++的五种内存分配区域
C/C++编译的程序 所占用内存区域 一般分为以下5个部分:栈区(stack):由编译器自动分配和释放,用来存放函数的参数、局部变量等。其操作方式类似于数据结构中的栈。堆区(heap):一般由程序员分配和释放(通过malloc/free、new/delete),若程序员没有释放,则程序结束时由操作系统回收。它与数据结构中的堆是两回事,分配方式类似于链表。全局/静态区:全局变量和静态变量的存储是放在一块的,(1)初始化的全局变量和初始化的静态变量在一块区域,(2)未初始化的全局变量和未初始化的静态变量在原创 2017-10-02 20:28:29 · 766 阅读 · 0 评论 -
C++常见面试问题
Windows内存管理的方法内存管理是操作系统中的重要部分,两三句话恐怕谁也说不清楚吧~~当程序运行时需要从内存中读出这段程序的代码。代码的位置必须在物理内存中才能被运行,由于现在的操作系统中有非常多的程序运行着,内存中不能够完全放下,所以引出了虚拟内存的概念。把那些不常用的程序片断就放入虚拟内存,当需要用到它的时候在load入主存(物理内存)中。这个就是内存管理所要做的事。内存管理还有另外一件事需要做:计算 程序片段 在主存中的物理位置,以便CPU调度。内存管理有块式管理,页式管理,段式和段页式管理原创 2017-09-28 20:03:23 · 567 阅读 · 0 评论 -
C++类的特性总结(list)
无论是指针,还是类,套在内存模型上,很多逻辑都比较容易解释,内存才是王道啊~1.构造函数、析构函数、拷贝构造函数 https://blog.youkuaiyun.com/cymy001/article/details/78609991https://blog.youkuaiyun.com/cymy001/article/details/786165662.this指针、友元https://blog.youkuaiyun.com/cymy001/article/details/786718743.sizeof()用于类原创 2018-02-25 08:59:52 · 455 阅读 · 0 评论 -
C++模板函数、模板类小笔记
C++除了类里的内存模型比较有意思之外,泛型编程也是很有思想的抽象。当然最有用的还是标准模板库,带上标准的~里面包含了各种现成的容器,好用并且格式比较统一 美观~模板函数#include <iostream>#include <string>using namespace std;template <typename Type>const Type& GetMax(const Type& value1, const Type&原创 2018-02-25 08:57:13 · 381 阅读 · 0 评论 -
C++构造函数和析构函数
private修饰的成员:只能在类内和友元中访问。public修饰的成员:类的对象可获取。构造函数:与类同名,不返回任何值。总是在创建对象时被调用。默认构造函数:不提供参数就可调用的构造函数。包括“带默认参数值的构造函数”。没有默认构造函数,提供了重载的构造函数时,C++编译器不会再为您生成默认构造函数。//test.h#include <iostream>#include <stdlib.h>#include <string>using n原创 2017-11-23 05:42:12 · 370 阅读 · 0 评论 -
C++变量可见
写这篇纯粹就是钻牛角尖,把排列组合的精神发挥得淋漓尽致要~//test.h 用extern声明定义extern int sss;//test.c 定义变量int sss = 10;//main.c 一次定义,可以多次声明extern int sss;cout << sss << endl; //这里要想用,必须ertern声明【注意这里没include test.h】//test.c 定义变量int sss = 10;//main.c 一次定义,原创 2017-11-10 04:49:13 · 1318 阅读 · 0 评论 -
C++关键字static
全局静态变量在全局变量前,加上关键字static,全局变量就定义成一个全局静态变量。全局/静态区,在整个程序运行期间一直存在。初始化:未经初始化的 全局静态变量,会被自动初始化为0(自动对象的值是任意的,除非它被显式初始化)。作用域:全局静态变量 在声明它的文件之外是不可见的,准确地说,可见范围是 从定义之处开始,到文件结尾。局部静态变量在局部变量之前,加上关键字static,局部变量就成为一个局部静态变量。内存中的位置:静态存储区。初始化:未经初始化的局部静态变量会被.原创 2017-11-30 07:03:22 · 6064 阅读 · 1 评论 -
C++this指针、友元等小属性集锦
this指针关键字this包含“当前对象的地址”,即this指针的值为&object。在 某个类的成员方法 调用 其他成员方法 时,编译器将隐式得传递this指针。* 调用静态方法时,不会隐式得传递this指针(静态方法是所有实例共享的)。* 要在静态方法里 使用非静态实例变量,应显示地声明一个形参,并将实参设置为this指针。class A{private: int age; void fun(string test){ cout << test; }原创 2017-11-30 22:23:00 · 325 阅读 · 0 评论 -
C++继承小笔记
内存静态存储区(static):全局变量、静态变量(static int a;)内存动态存储区(栈stack):局部变量内存自由存储区(堆heap):临时用数据其中静态存储区、动态存储区的变量空间开辟和释放自动进行,不需要程序人员操作内存;只有堆区需要手动开辟和释放空间:静态开辟——在编译时刻,数组的空间大小就开辟完成;动态开辟——malloc、calloc、realloc;手原创 2017-12-01 05:04:19 · 5110 阅读 · 0 评论 -
C++多态小笔记
派生类多态:派生类实例 传入 基类 引用参数。原创 2017-11-30 08:20:41 · 218 阅读 · 0 评论 -
C++拷贝构造函数
利用new在堆区创建的对象,被复制时(按对象值传参),将复制对象的指针成员,但不复制指针成员指向的缓冲区。结果是两个对象指向同一块动态分配的内存,销毁其中一个对象时 - delete释放内存块,导致另一个对象存储的指针拷贝无效。【编译器执行二进制复制:复制 整型、字符和原始指针 等POD数据,不复制 指针指向的内存单元】在没有原始指针成员的情况下,不需要编写拷贝构造函数。因为编译器添加的默认拷贝构造函数 将调用成员对象的拷贝构造函数。拷贝构造函数:一个重载的构造函数,由编写类的程序员提.原创 2017-11-23 16:52:56 · 591 阅读 · 0 评论