基础知识
离默笙
这个作者很懒,什么都没留下…
展开
-
Linux|线程知识总结
多线程的基本概念在一个程序里的一个执行线路叫做线程。也称为一个进程内部的控制序列。每个线程都代表进程的一个执行流。线程独有的部分:栈,寄存器,信号屏蔽器,errno,标识符线程共享的部分:虚拟地址空间(代码段,数据段),文件描述符,信号处理方式,工作路径,用户ID,组ID线程的优点:创建/销毁成本更低线程间调度成本更低线程间通信方式更加灵活(全局变量,函数传参)异常和某些系统调用针对的是整个进程线程的缺点:性能损失健壮性降低缺乏访问控制编程难度提高一般情况下对程序原创 2020-06-21 22:36:59 · 159 阅读 · 0 评论 -
C/C++内存管理
内存分配的方式在C++中,内存被分为了五个区域,分别是,栈、堆、数据段、代码段、内存映射区。栈:函数执行时,内部创建的局部变量的存储单元都存储在栈上。在程序执行结束时,系统会自动释放栈中的资源。栈内存分配的效率也是比较快的。栈是向下增长的。堆:用于程序运行时动态内存分配,堆是向上增长的。数据段:存储全局变量和静态变量的地方。代码段:可执行代码/只读常量。内存映射区:是高效的I/O映射...原创 2020-05-09 18:49:21 · 106 阅读 · 0 评论 -
继承与多态
继承继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的属性和方法,或子类从父类继承方法,使得子类具有父类相同的行为。继承的定义格式:class A{public: int a;};class B:public A{public: int b;};在以上代码中A类被B类以public的方式所继承,其中A类为基类也称为父类,B类是派生类也称为子类。继承...原创 2020-05-09 21:36:02 · 168 阅读 · 0 评论 -
Linux|进程知识总结
进程的基本概念进程是程序的一个执行实例,担当分配系统资源(cpu时间,内存)的实体。也是系统进行资源分配和调度的一个独立单位。描述进程PCB进程信息被放在一个叫做进程控制块的数据结构中,也可以理解为进程属性的集合。Linux操作系统下的PCB是task_struct。task_struct是linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含进程的信息。task_str...原创 2020-06-18 17:47:41 · 118 阅读 · 0 评论 -
数据结构之树
一.树的概念树是一种非线性结构它是由n个结点组成的一个具有层次结构的集合。它具有以下的特点:1.每个结点有零个或者多个子结点。2.每一个非根结点只有一个父结点。3.没有父结点的结点为根结点。4.除了根结点外,每个结点都可以分为多个不相交的结点。结点的度:一个结点含有的子树的个数。叶结点(终端结点):度为0的结点。分支结点(非终端结点):度不为0的结点。父结点(双亲结点):若一个结点含有子...原创 2020-03-09 23:38:23 · 298 阅读 · 0 评论 -
STL容器中size和capacity的区别
size:表示当前容器中元素的个数capacity:表示当前容器在必须分配新的存储空间之前允许存放元素的个数与size对应的函数是resize(n),它的作用是调整容器的大小使其能够容纳n个元素,如果n小于当前容器的size,则删除多余的元素。如果n大于当前容器的size,则添加初始化后的元素。(resize还有另一种用法resize(n,0) 表示将所有新添加的元素初始化为0。)与capa...原创 2020-02-29 18:32:53 · 641 阅读 · 0 评论 -
排序算法总结
快速排序算法快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所有元素都排列在相应位置上为止。快速排序算法的特性:快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序...原创 2020-02-18 19:09:18 · 88 阅读 · 0 评论 -
哈希表知识点总结
1.哈希的概念为了可以不经过任何比较,一次直接从表中得到要搜索的元素,构造的一种存储结构。这种结构可以通过某种函数使元素的存储位置与它的关键码之间能够建立一一映射的关系,在查找时通过该函数可以很快找到该元素。插入元素:根据待插入元素的关键码,以此函数计算出该元素的存储位置并按此位置进行存放。搜索元素:对元素的关键码进行同样的计算,把求得的函数值当做元素的存储位置,在结构中按此位置取元素比...原创 2020-02-15 16:50:36 · 405 阅读 · 0 评论 -
linux 基础命令知识总结
一. 进入目录需要哪些权限1.当用户是拥有者时,进入目录需要执行权限x,更改目录需要w,查看目录需要r二.在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限.1.当用户是拥有者时。在目录中执行cd进入一个目录时,需要当前目录的x,r权限,以及子目录的x权限。在目录中执行ls需要r和x权限在目录中执行touch,rm,mv,mkdir,时需要w,...原创 2019-11-19 22:15:08 · 117 阅读 · 0 评论 -
c++前期知识点总结
一.c++基础知识点1.命名空间1.1命名空间可以解决函数,全局变量名重复的问题,包在不同的命名空间里的重复函数实际就是俩个完全不同的函数。1.2命名空间允许嵌套,嵌套内部和外部没有任何关系。1.3命名空间允许重名,重名的命名空间会被合并。1.4使用using关键字可以引用一个命名空间2.c++输入&输出2.1 cout << 输出 cin >> 输入...原创 2019-10-30 19:17:01 · 180 阅读 · 0 评论 -
linux 基本指令总结
1.ls指令1.1 ls -a 列出目录下的所有文件,包括以 ‘.’ 开头的隐含文件。1.2 ls -d 将目录像文件一样显示,而不是显示其下的文件。如:ls -d 指定目录1.3 ls -i 输出文件的i节点的索引信息。1.4 ls -l 列出文件的详细信息 也可以写成 -ll1.5 ls -lrt ???1.6 ls -k 以k字节的形式表示文件的大小。1.7 ls -F 在每...原创 2019-09-29 23:12:54 · 60 阅读 · 0 评论 -
c++ string知识总结
一.标准库中的string1.string类1.1 string是表示字符串的字符串类1.2该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。1.3string在底层实际是:basic_string模板类的别名,typedef basic_string<char, char_traits, allocator>string;1.4. 不...原创 2019-09-19 10:25:19 · 124 阅读 · 0 评论 -
c++类与对象知识点总结
一.类1.类的定义class className{//类体:由成员函数和成员变量组成};//注意后边的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号。类中的元素称为类的成员:类中的数据称为类的属性或者成员变量; 类中的函数称为类的方法或者成员函数。类的两种定义方式:声明和定义全部放在类体中,需要注意:成员函数如果在类中...原创 2019-09-05 11:14:49 · 1406 阅读 · 0 评论 -
c++知识点总结1
一.命名空间(namespace)1.1.命名空间的定义//普通的命名空间namespace a{int a;int Add(int left,int right){return left + right;}}//嵌套的命名空间namespace b{int a;int b;int Add(int left,int right){return left + ri...原创 2019-08-28 17:33:05 · 95 阅读 · 0 评论 -
结构体学习情况总结
c语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体。在其他一些高级语言中称为记录。struct tag { member-list; }variable-list; 例如描述一个学生:struct Stu { char name[20];//名字 int age;//年龄 char sex[5];//性别 char id[20...原创 2019-06-24 11:56:24 · 313 阅读 · 2 评论 -
文件及文件操作相关的函数简介
在程序设计中,主要用到俩种文件(1)程序文件。包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)等。这种文件的内容是程序代码。(2)数据文件。文件的内容不是程序,而是供程序运行时读写的数据,如在程序运行过程中输出到磁盘(或其他外部设备)的数据,或在程序运行过程中供读入的数据。如一批学生的成绩数据、货物交易的数据等。文件一般指存储在外部介质上的数据。文件类...原创 2019-06-18 09:32:28 · 272 阅读 · 0 评论 -
动态内存分配
内存的存储分为俩种,一种是静态存储,一种是动态存储静态存储:程序 在运行期间由系统分配固定的存储空间。动态存储:程序在运行期间根据需要进行动态分配空间。动态存储区存放以下数据1)函数形式参数。在调用函数时给形参分配存储空间。2)函数中定义的没有关键字static声明的变量,即自动变量。3)函数调用时现场保护和返回的地址。C语言提供了一个动态内存开辟的函数:void* malloc ...原创 2019-06-10 13:15:53 · 118 阅读 · 0 评论 -
一级指针 二级指针 指针和数组 指针数组
一级指针int *p;上述代码定义了一个一级指针变量,int为基类型。指针变量的基类型用来指定此指针变量可以指向的变量的类型。一级指针变量也就是存储着另外一个变量地址的变量在定义指针时应注意指针变量必须指定基类型。且必须给指针变量赋初值,在不确定该指针变量要指向什么的时候应该给其赋NULL,否则该指针变量将会变为一个野指针。二级指针char **p;**定义了一个二级指针变量p。p是一...原创 2019-05-31 13:21:54 · 310 阅读 · 1 评论