DOS命令行入门

powershell就是cmd的升级版(集成了一些新的命令如ls)

anaconda powershell prompt 就是anaconda prompt的升级版(集成了一些新的命令如ls)

通用

dir:查看当前目录下的内容,dir .. 那么显示的是上级目录中的内容

md 目录名:创建文件夹

rd 目录名:删除文件夹

cd> 文件名: 创建文件

del 文件名: 删除文件

cd:实际上就是change directory,改变当前目录的意思,cd..即返回上一级

c:直接切换盘(\表示路径)

cls:清理屏幕:

exit:退出终端:

javac:编译java程序成字节码程序(.class)

java: 运行字节码程序

-d: 将运行生成的.class 文件输送到特定目录

-cp:用于执行引用了包的java.class 文件

python:运行python程序

g++ filename.cpp:生成的是a.exe

g++ -o output_filename filename.cpp :生成的是output_filename.exe

conda

创建环境:conda create -n env_name python=3.7

进入环境:activate env_name

离开环境:deactivate

列出环境:conda env list

删除环境:conda env remove -n env_name

安装包:conda install pakage_name

移除包:conda remove pakage_name

更新包:conda update package_name

列出包:conda list

git

本地仓库

git commit:创建新的提交记录

git branch 分支名:建立新的分支,切换到这个分支后就能对这个分支操作了

git checkout 分支名(当前^  当前~n):切换到别的分支,或者向上切换一个或几个。head指向最新checkout的地方(可以指向分支或提交(分离head))

如果不是切换head而是移动分支的话,使用git branch -f 被移动的分支 移动到的提交

git merge 分支名:在当前分支合并上别的分支,把不同的修改合并到一起

git rebase 分支名:移动到别的分支的下面,得到线性提交序列。做两次就能达到像merge一样的效果

git reset 分支名:回退到之前分支的地方,其子孙都不复存在。仅对本地仓库有效,无法push到远程仓库

git revert 当前分支:修改当前分支直到没修改过似的,形成一个新的记录。这种修改才能提交到远程仓库

git log:查看提交记录

远程仓库

git clone:克隆一个仓库到本地,所在分支为o/main(远程仓库名/分支名),在本地修改这个仓库后再怎么提交,o/main的指向始终指向远程分支都不变,除非远程仓库变了(比如修改了main(自动跟踪o/main)再push)

获取本地和远程对应推送位置的方法:

  1. 默认:根据名字,main对应o/main
  2. 指定属性:main跟踪o/main是自动生成的,如果想自己创建一个跟踪分支,就可以使用git checkout -b 分支名 要跟踪的远程分支,也可以使用git branch -u 要跟踪的远程分支 分支名
  3. 指定参数:git push 远程仓库 本地要推送的分支,这种方式就不需要head跟踪当前分支,本地推送的默认是推送到远程仓库中同名的分支,如果要自己指定推送的地方,可以使用git push 远程仓库 源(如果源不存在相当于传空值给目的,相当于删除远程仓库中的分支):目的(如果目的不存在会自动创建)

git fetch:拉取远程分支并且更新本地中的对应的远程分支,单纯的下载,不会更新原有的

  1. 指定参数:git fetch 远程仓库 远程仓库中要拉取的分支,但只是单纯的下载,分支还是o/~ 后续可以再merge(相当于git pull 远程仓库 远程仓库中要拉取的分支),但如果想直接合并到本地代码的话,可以git fetch origin 远程仓库中的分支(如果为空相当于为本地新建一个分支):本地仓库的分支。(如果本地不存在会自动创建),再加上merge其实相当于git pull加上这些参数

git fetch和git merge就是拉取后进行合并,而git pull等价于两个操作一起执行

git push:把本地的更新同步到远程仓库,如果仓库已经有更新了,就要先fetch下来再rebase(或者直接git pull --rebase)后到同一线性(或者加merge,也就是pull),再push就行

在实际的合作中,应该建立自己的远程分支,最后合并时,先使用git pull-rebase和git rebase合并到同一条链中,最后再push上去

c++11中如果使用new进行动态内存分配,很容易忘掉释放内存导致内存泄漏,此时可以使用智能指针实现自动释放,定义为局部变量。

unique_ptr

一个指针指向一块内存,如果要重新指向,使用reset

构造

赋值:仅支持右值赋值

放弃控制权:指针.release(),这时就没有指针托管这块内存了,记得使用

shared_ptr

允许多个指针指向同一个变量(直接赋值或者构造就行),使用计数器(use_count())来维护共享变量数。交叉使用可能导致内存泄漏->weak_ptr指针

构造

reset()实现重置,可传入删除器。

交换:swap()

weak_ptr

辅助shared避免循环引用,构造和析构时不会导致计数器改变,但仍可以计数、赋值等无法使用*或者->

构造:

转换为shared_ptr正常使用:lock()

expired():没有托管对象就已经开除,返回true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值