Git的目录结构

git目录

新建一个git项目,查看.git目录

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
.git/
├── branches
├── config
├── description
├── HEAD
├── hooks
│   ├── applypatch-msg.sample
│   ├── commit-msg.sample
│   ├── fsmonitor-watchman.sample
│   ├── post-update.sample
│   ├── pre-applypatch.sample
│   ├── pre-commit.sample
│   ├── prepare-commit-msg.sample
│   ├── pre-push.sample
│   ├── pre-rebase.sample
│   ├── pre-receive.sample
│   └── update.sample
├── info
│   └── exclude
├── objects
│   ├── info
│   └── pack
└── refs
    ├── heads
    └── tags

9 directories, 15 files

开始使用Docker

docker安装

1
2
3
4
wget -qO- https://get.docker.com/ | sh
# 或者 apt install docker.io
docker --version
docker system info

如果遇到permission的问题,则将当前用户添加到用户组,并且之后要记得重新登录(注销当前用户)

1
2
3
4
5
$ sudo groupadd docker #创建docker用户组
$ sudo usermod -aG docker ${USER} #将当前用户加入docker用户组
$ sudo systemctl restart docker #重启docker服务
$ su root #切换到root用户,或注销再登录当前用户
$ su ${USER} #再切换到原来的应用用户以上配置才生效

值传递OR引用传递

目的

验证值传递和引用传递的区别。

  • 值传递会拷贝,引用传递不会拷贝;
  • 如果类是禁止拷贝的,就不能使用值传递;
  • C++推荐使用引用传递;

C++容器操作

问题

  • 容器存指针,调用erase、clear是否会调用元素的析构函数?
    • 不会调用析构函数
  • 容器存类(非指针),是否会调用构造拷贝函数?使用erase、clear是否会调用析构函数?
    • 会调用拷贝构造函数
    • 会调用析构函数

C++解包函数tie的用法

tie

std::tie会把变量打包成一个tuple(pair),实现变量赋值;这个行为叫做解包

1
2
3
tuple<int,double,string> t3 = {1, 2.0, "3"};
int i; double d; string s;
tie(i, d, s) = t3;

对C++bind的理解

bind的设计思想: 高内聚, 低耦合, 使被调用的函数和调用者完全隔离开来. 调用者可以根据需要任意设计接口和传参, 而被调用函数通过bind可以不经修改接口就可以兼容各种需求的变化.

在博客上查到我认为比较精髓的理解是, 使被调用的函数和调用者完全隔离开来