C++基于getline的split实现
前言
C++ 作为老大哥竟然一直不支持 split ,在看程设模拟的时候发现了可以通过 getline 优雅的实现 split。
代码
12345678910111213141516171819202122232425262728vector<string> split(const string& s, char c) { //分隔文件名 vector<string> res; string tmp; stringstream ss(s); while (getline(ss, tmp, c)) res.push_back(tmp); //res保存整体 return res;}// std::vector<std::string> split(const std::string& line, char c) {// std::stringstream stm(line);// std::vector<std::string> ans;// ...
在64位Linux环境中运行Nachos3.4
操作过程
操作过程如下(以64位Ubuntu为例):
检查系统是否支持多架构
(1) 确认主机系统为64位架构的内核
在命令终端中运行 dpkg--print-architecture,应该输出amd64
(2) 确认系统多架构功能已经打开,以支持1386
在命令终端中运行 dpkg--print-foreign-architectures,应该输出i386
如果(2)中检测到多架构功能尚未打开,则使用下述命令安装
1sudo dpkg--add-architecture i386
安装32位编译环境与支持库
(1) 检查gcc与g++是否已经安装,如果尚未安装,使用如下命令安装它们。
1sudo apt install gcc g++
(2)安装32位编译环境与支持库
1sudo apt install build-essential g++-multilib gcc-multilib
修改Nachos
(1) 修改code目录下的Makefile.dep文件
在C++的编译器CC与链接器LD后追加-m32,在汇编编译器AS后追加--32,修改后的内容如下所示:
1 ...
illumination, shading, rendering的区别
答案
Illumination 理解成光照的情况,是输入的量;
Shading 是着色,计算一个点在光照之后看上去长什么样;
Rendering 是整个渲染过程,包括解 light transport 用到的各种光线追踪,也包括之后的着色过程。
参考链接
games101
NTFS, FAT32和exFAT文件系统有什么区别?
NTFS是目前Windows系统中一种现代文件系统,目前使用最广泛,内置的硬盘大多数都是NTFS格式。FAT32是一种相对老旧的文件系统,不能像NTFS格式支持很多现代文件格式的属性,但对于不同系统平台具有良好的兼容性,可以在Linux、Mac或Android系统平台上通用。exFAT是FAT32文件格式的替代品,很多设备和操作系统都支持该文件系统,但是目前用的不多。
1、FAT32文件格式是一种通用格式,任何USB存储设备都会预装该文件系统,可以在任何操作系统平台上使用。最主要的缺陷是只支持最大单文件大小容量为4GB(索引节点表的问题),因此日常使用没有问题,只有在传输大文件时才会显现出缺点。
2、exFAT文件是微软自家创建的用来取代FAT32文件格式的新型文件格式,它最大可以支持1EB的文件大小,非常适合用来存储大容量文件,还可以在Mac和Windows操作系统上通用。虽然是微软的技术,苹果批准在系统中使用该文件格式,因此在Mac系统中格式化存储设备时会出现exFAT文件格式选项。最大的缺点是没有文件日志功能,这样就不能记录磁盘上文件的修改记录。
3、NTFS是微软为硬盘或固态 ...
死锁的避免和预防的区别?
死锁避免
死锁避免的基本思想:
系统对进程发出每一个系统能够满足的资源申请进行动态检查
并根据检查结果决定是否分配资源
如果分配后系统可能发生死锁,则不予分配,否则予以分配。
这是一种保证系统不进入死锁状态的动态策略。
死锁预防
我们可以通过破坏死锁产生的4个必要条件来预防死锁,由于资源互斥是资源使用的固有特性是无法改变的。
破坏"不可剥夺"条件:一个进程不能获得所需要的全部资源时便处于等待状态,等待期间他占有的资源将被隐式的释放重新加入到系统的资源列表中,可以被其他的进程使用,而等待的进程只有重新获得自己原有的资源以及新申请的资源才可以重新启动,执行。
破坏"请求与保持条件":第一种方法静态分配即每个进程在开始执行时就申请他所需要的全部资源。第二种是动态分配即每个进程在申请所需要的资源时他本身不占用系统资源。
破坏"循环等待"条件:采用资源有序分配。其基本思想是将系统中的所有资源顺序编号,将紧缺的,稀少的采用较大的编号,在申请资源时必须按照编号的顺序进行,一个进程只有获得较小编号的进程才能申请较大编号的进程。
...
VSCode 配置速览定义
前言
VSCode 按住ctrl 再用鼠标左键点击变量会出现它的定义,点击函数会实现跳转。但是我不想让它跳转到函数而是像 Visual Studio 那样出现速览定义弹窗
方法
在设置中勾选此项
效果
SVM目标函数的一些理解
写在前面
学习SVM的对目标函数有些疑问,做了一些笔记。感谢ZKX同学提供的帮助,(PS:这篇博客可能会继续更新
SVM
我们的问题是设定一个超平面,去最大化样本点和这个超平面的距离,这个距离我们称之为Margin(间隔)。
γ=miniγ(i)\gamma=\min _{i} \gamma^{(i)}
γ=iminγ(i)
函数间隔 Functional margin:
这一点老师的PPT上并没有给出来,所以可能学习的时候有些混淆。
γ^(i)=y(i)(ωTx(i)+b)\hat{\gamma}^{(i)}=y^{(i)}\left(\omega^{T} x^{(i)}+b\right)
γ^(i)=y(i)(ωTx(i)+b)
这里我们扩大ω,b\omega,bω,b n 倍数会改变γ^\hat{\gamma}γ^。因此我们引入几何间隔。
几何间隔 Geometric margin :
γ(i)=y(i)((ω∥ω∥)Tx(i)+b∥ω∥)\gamma^{(i)}=y^{(i)}\left(\left(\frac{\omega}{\|\omega\|}\righ ...
操作系统、计算机网络、计算机组成原理中同步和异步的概念
操作系统中
同步
在并发环境下,保持操作之间的偏序关系的行为。
进程同步是指多个进程中发生的事件存在某种时序关系,必须协同动作共同完成一个任务。简单来讲同步是一种协作关系。
同步亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而等待、传递信息所产生的制约关系
举几个例子:
当两个进程运行时,进程A需要获取进程B此时运行到某一步的运行结果或者信息,才能进行自己的下一步工作,这个时候就得等待进程B与自己通信(发送某一个消息或信号),进程A再继续执行。这种进程之间相互等待对方发送消息或信号的协作就叫做进程同步。或者工厂的流水线,每道工序都有自己特定的任务,前一道工序没有完成或不合格后一道工序就不能进行。再或者ABC三个进程分别负责输入、处理、输出数据,A必须先执行,B次之,最后C。
异步
异步性:是指进程以不可预知的速度向前推进。在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系(一般是资源问题)。内存中的每个进程何时执行,何时暂停,以怎样的速度向前推进,程序总共需要多少时间才能完成等,都是不可预知的。
...
Django 返回相对路径和绝对路径
imagefiled
123456def user_directory_path(instance, filename): # file will be uploaded to MEDIA_ROOT/user_<id>/<filename> return 'user_{0}/{1}'.format(instance.user.id, filename)class MyModel(models.Model): image = models.FileField(upload_to=user_directory_path)
1image.url 返回相对路径
image.path 返回绝对路径
在Linux上使用Nginx + Gunicorn部署Django工程
tmux + start django
tmux
123456tmux new -s session_name # 创建名为 session_name 的 tmux sessiontmux attach -t session_name # 重新回到叫做 session_name 的 tmux sessiontmux switch -t session_name # 切换到叫做 session_name 的 tmux sessiontmux list-sessions / tmux ls # 列出现有的所有 sessiontmux detach # 离开当前开启的 sessiontmux kill-server # 关闭所有 session
1234567891011ctrl + b? 列出所有快捷键;按q返回d 脱离当前会话,可暂时返回Shell界面s 选择并切换会话;在同时开启了多个会话时使用D 选择要脱离的会话;在同时开启了多个会话时使用: 进入命令行模式;此时可输入支持的命令,例如 kill-server 关闭所有tmux会话[ 复制模式,光标移动到复制内容位置,空格键开始 ...