- 博客(7)
- 收藏
- 关注
原创 进程控制——进程替换、模拟shell
一、进程替换 1、进程替换 替换一个进程正在调度运行的程序,即重新加载另一个程序到内存中,将现有的一个子进程的pcb的内存指针所指向的内存空间指向这个新的程序(更新页表的映射信息),则这个现有的子进程就跑去调度这个新的程序了; 2、程序替换的意义 fork创建的子进程,代码共享数据独有,父子进程干的是一样的事情;但是通常情况下,我们创建一个子进程的目的并不是为了让子进程与自己干一个事情,而是让子进程运行调度一个新的程序,让他去干其他事情,这就是程序替换的意义; 3、库函数接口
2020-11-28 16:33:37 137
原创 C++——list容器的模拟实现
目录一、定义ListNode结点类二、封装一个迭代器类三、模拟实现list容器(一)定义(二)构造函数(三)拷贝构造函数(四)赋值运算符重载函数(五)析构函数(六)迭代器(七)Capacity(八)元素访问Access(九)Modify一、定义ListNode结点类 因为list容器是用双向循环链表来实现的,所以每一个结点都有指向下一个结点的next指针和指向上一个结点的prev指针;template<class T>struct ListNode{ T _value; List
2020-11-21 20:11:47 219
原创 C++模拟实现vector
一、定义my_vector类#include<iostream>#include<assert.h>using namespace std;template<class T>class my_vector{public: //构造函数 //赋值运算符重载 //析构函数 //迭代器 typedef T* iterator; typedef const T* const_iterator; //Capacity //eleme
2020-11-19 14:34:48 171
原创 C++——模拟实现string
目录一、定义my_string类二、成员函数(一)构造函数(二)析构函数(三)拷贝构造(四)赋值运算符重载三、迭代器四、Capacity(一)获取string容量(二)改变容量五、元素访问(一)[]运算符重载六、string修改(一)插入insert(二)删除erase(三)尾插push_back(四)尾删pop_back(五)追加插入append(六)+=运算符重载七、关系运算符重载八、查找九、输入输出运算符重载(不是成员函数)(一)输入运算符重载(二)输出运算符重载一、定义my_string类#in
2020-11-12 18:11:21 272
原创 C++——string之迭代器
一、string构造void test(){ string str1; //默认构造 string str4("123456"); //C风格字符串创建 string str5 = "123456"; //单参构造隐式类型转换 string str8("12345678", 5); //以字符串前n个字符创建对象,内容为"12345" string str9(10, 'a'); //用n个字符创建对象,内容为10个字符a string str2(
2020-11-12 10:41:45 7487 2
原创 C++——string之对象的构造
string构造 1、默认构造 string(); string str1; 2、C风格字符串创建 string (const char* s); string str2("123456"); 3、单参构造隐式类型转换 string str3 = "123456"; 4、以字符串前n个字符创建对象 string (const char* s, size_t n); string str4("12345678", 5); 5、用n个字符创建
2020-11-12 10:36:28 125
原创 C++——模板
目录一、泛型编程二、模板(一)函数模板(二)类模板一、泛型编程 我们在编写程序时,可能会遇到实现同一个功能但是所传的参数不同的函数的场景,举个例子void Swap(int& a, int& b){ int tmp = a; a = b; b = tmp;}void Swap(float& a, float& b){ float tmp = a; a = b; b = tmp;}void Swap(double& a, double&
2020-11-10 15:18:04 196 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人