vault backup: 2025-02-10 17:42:34
This commit is contained in:
@@ -1,3 +1,11 @@
|
|||||||
|
---
|
||||||
|
tags: cpp17
|
||||||
|
aliases:
|
||||||
|
date: 2025-02-10
|
||||||
|
time: 17:34:18
|
||||||
|
description:
|
||||||
|
---
|
||||||
|
|
||||||
Structured binding declaration 可以把對應的 tuple、pair、vector 展開,讓 code 更好讀。
|
Structured binding declaration 可以把對應的 tuple、pair、vector 展開,讓 code 更好讀。
|
||||||
|
|
||||||
## 展開 tuple
|
## 展開 tuple
|
||||||
@@ -55,3 +63,6 @@ for (const auto& [name, phone] : phoneBook) {
|
|||||||
std::cout << "Name: " << name << ", phone: " << phone << std::endl;
|
std::cout << "Name: " << name << ", phone: " << phone << std::endl;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
# 參考來源
|
||||||
@@ -1,4 +1,10 @@
|
|||||||
Language: C++11
|
---
|
||||||
|
tags: cpp11
|
||||||
|
aliases:
|
||||||
|
date: 2025-02-10
|
||||||
|
time: 17:38:00
|
||||||
|
description:
|
||||||
|
---
|
||||||
|
|
||||||
## header
|
## header
|
||||||
```cpp
|
```cpp
|
||||||
@@ -75,5 +81,5 @@ std::cout << std::ctime( &now_c ) << std::endl;
|
|||||||
|
|
||||||
而如果是使用 Boost 的版本的話,Boost 則是另外有提供 chrono_io.hpp 這個檔案,在裡面替 duration 和 time_point 定義了輸出的格式,可以直接使用,相當地方便~有興趣的話,可以參考 [Boost 的官方說明](http://www.boost.org/doc/libs/1_55_0/doc/html/chrono/users_guide.html#chrono.users_guide.tutorial.i_o)。
|
而如果是使用 Boost 的版本的話,Boost 則是另外有提供 chrono_io.hpp 這個檔案,在裡面替 duration 和 time_point 定義了輸出的格式,可以直接使用,相當地方便~有興趣的話,可以參考 [Boost 的官方說明](http://www.boost.org/doc/libs/1_55_0/doc/html/chrono/users_guide.html#chrono.users_guide.tutorial.i_o)。
|
||||||
|
|
||||||
## 參考來源
|
# 參考來源
|
||||||
- [C++11 STL 的時間函式庫:chrono – Heresy's Space](https://kheresy.wordpress.com/2013/12/27/c-stl-chrono/)
|
- [C++11 STL 的時間函式庫:chrono – Heresy's Space](https://kheresy.wordpress.com/2013/12/27/c-stl-chrono/)
|
||||||
@@ -1,3 +1,11 @@
|
|||||||
|
---
|
||||||
|
tags: cpp17
|
||||||
|
aliases:
|
||||||
|
date: 2025-02-10
|
||||||
|
time: 17:37:31
|
||||||
|
description:
|
||||||
|
---
|
||||||
|
|
||||||
for_each 是一個 function,它的原型是:
|
for_each 是一個 function,它的原型是:
|
||||||
```cpp
|
```cpp
|
||||||
template<class InputIterator, class Function>
|
template<class InputIterator, class Function>
|
||||||
@@ -21,4 +29,7 @@ for_each(
|
|||||||
val += 1;
|
val += 1;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
# 參考來源
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
tags:
|
tags: cpp11, cpp14
|
||||||
aliases:
|
aliases:
|
||||||
date: 2022-06-12
|
date: 2022-06-12
|
||||||
time: 18:21:42
|
time: 18:21:42
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
---
|
||||||
|
tags: cpp14
|
||||||
|
aliases:
|
||||||
|
date: 2025-02-10
|
||||||
|
time: 17:35:40
|
||||||
|
description:
|
||||||
|
---
|
||||||
|
|
||||||
move operator可以讓[[rvalue]]被參考,從而進一部的消除複製的成本。例如,以下的function會回傳一個很大的陣列:
|
move operator可以讓[[rvalue]]被參考,從而進一部的消除複製的成本。例如,以下的function會回傳一個很大的陣列:
|
||||||
```cpp
|
```cpp
|
||||||
vector<int> generateBigArray() {
|
vector<int> generateBigArray() {
|
||||||
@@ -56,4 +64,7 @@ Array<T>& Array<T>::operator=(const Array&& rhs)
|
|||||||
std::vector<std::string> my_dictionary(10000000);
|
std::vector<std::string> my_dictionary(10000000);
|
||||||
std::vector<std::string> dictionary2 = std::move(my_dictionary);
|
std::vector<std::string> dictionary2 = std::move(my_dictionary);
|
||||||
```
|
```
|
||||||
在`std::move`之後,my_dictionary的size會變成0。
|
在`std::move`之後,my_dictionary的size會變成0。
|
||||||
|
|
||||||
|
|
||||||
|
# 參考來源
|
||||||
|
|||||||
@@ -1,79 +0,0 @@
|
|||||||
### 加入
|
|
||||||
使用`crontab -e`,然後加入這一行:
|
|
||||||
`*/1 * * * * /home/awin/script/ddns.sh`
|
|
||||||
|
|
||||||
### 說明
|
|
||||||
![[Pasted image 20240111231507.png]]
|
|
||||||
依序是 **分鐘, 小時, 日期, 月份, 星期, command**
|
|
||||||
參數為 0-59, 0-23, 1-31, 1-21, 0-6, 需要執行的command
|
|
||||||
**※ 星期參數為 0 代表星期日**
|
|
||||||
|
|
||||||
- 【*】:星號,代表任何時刻都接受的意思
|
|
||||||
- 【,】:逗號,代表分隔時段。例如:30 9,17 * * * command,代表早上 9 點半和下午五點半都執行 command。
|
|
||||||
- 【-】:減號,代表一段時間範圍。例如:15 9-12 * * * command,代表從 9 點到 12 點的每個 15 分都執行 command。
|
|
||||||
- 【/n】:斜線,n 代表數字,表示每個 n 單位間隔。例如:*/5 * * * * command,代表每隔 5 分鐘執行一次 command。
|
|
||||||
|
|
||||||
還有一些人性化的參數,一次取代全部五個數字參數
|
|
||||||
- 【@reboot】 :僅在開機的時候執行一次。
|
|
||||||
- 【@yearly】 :一年執行一次,和0 0 1 1 * command效果一樣。
|
|
||||||
- 【@annually】:(和@yearly一樣)
|
|
||||||
- 【@monthly】:一個月執行一次,和0 0 1 * * command效果一樣。
|
|
||||||
- 【@weekly】:一個星期執行一次,和0 0 * * 0 command效果一樣。
|
|
||||||
- 【@daily】:每天執行,和0 0 * * * command效果一樣。
|
|
||||||
- 【@midnight】:(和@daily一樣)
|
|
||||||
- 【@hourly】 :每小時執行,和0 * * * * command效果一樣。
|
|
||||||
|
|
||||||
### 範例
|
|
||||||
- 每 5 分鐘執行一次:
|
|
||||||
- `*/5 * * * * root /usr/libexec/atrun`
|
|
||||||
- 每 5 小時執行一次
|
|
||||||
- `* */5 * * * root /usr/libexec/atrun`
|
|
||||||
- 每天 AM 5:00 執行指令(星號與星號之間要有空隔)
|
|
||||||
- `00 05 * * * username /bin/bash /路徑/command`
|
|
||||||
- 1 至 20 號每天執行一次
|
|
||||||
- `0 1 1-20 * * root /usr/libexec/atrun`
|
|
||||||
- 當分針移到第 5 分時,執行此 cron
|
|
||||||
- `5 * * * * root /usr/libexec/atrun`
|
|
||||||
- 當時針移到 1 點 1 分時,執行此 cron
|
|
||||||
- `1 1 * * * root /usr/libexec/atrun`
|
|
||||||
- 每週一的 1 點 1 分,執行
|
|
||||||
- `1 1 * * 1 root /usr/libexec/atrun`
|
|
||||||
- 2 月 29 日時針到 1 點 1 分,執行
|
|
||||||
- `1 1 29 2 * root /usr/libexec/atrun`
|
|
||||||
- 8 點到 16 點每 5 分鐘執行一次 cron
|
|
||||||
- `/5 8-16 * * * root /usr/libexec/atrun`
|
|
||||||
|
|
||||||
### crontab 命令
|
|
||||||
#### 啟動
|
|
||||||
`sudo service cron start`
|
|
||||||
|
|
||||||
#### 重新啟動
|
|
||||||
`/etc/init.d/cron restart`
|
|
||||||
|
|
||||||
#### 查詢service狀態
|
|
||||||
`sudo /etc/init.d/cron status`
|
|
||||||
|
|
||||||
#### 編輯 crontab
|
|
||||||
`crontab -e`
|
|
||||||
|
|
||||||
### `awin` 的 crontab
|
|
||||||
```
|
|
||||||
# m h day mon weekday command
|
|
||||||
*/5 * * * * /home/awin/script/clean_nextcloud.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### `root` 的 crontab
|
|
||||||
```
|
|
||||||
# m h day mon dow command
|
|
||||||
*/3 * * * * /home/awin/script/ddns.sh > /home/awin/log/ddns.log 2>&1
|
|
||||||
*/5 * * * * /home/awin/script/clean_nextcloud.sh > /home/awin/log/clean_nextcloud.log 2>&1
|
|
||||||
1 2 * * 1 /home/awin/script/backup_adguardhome.sh > /home/awin/log/backup_docker_adguardhome.log 2>&1
|
|
||||||
2 2 * * 1 /home/awin/script/backup_filebrowser.sh > /home/awin/log/backup_docker_filebrowser.log 2>&1
|
|
||||||
3 2 * * 1 /home/awin/script/backup_freshrss.sh > /home/awin/log/backup_docker_freshrss.log 2>&1
|
|
||||||
4 2 * * 1 /home/awin/script/backup_gitea.sh > /home/awin/log/backup_docker_gitea.log 2>&1
|
|
||||||
5 2 * * 1 /home/awin/script/backup_immich.sh > /home/awin/log/backup_docker_immich.log 2>&1
|
|
||||||
1 2 * * 2 /home/awin/script/backup_nextcloud.sh > /home/awin/log/backup_docker_nextcloud.log 2>&1
|
|
||||||
* * 1 * * /home/awin/script/backup_dotfiles_awin-pc2.sh > /home/awin/log/backup_dotfiles_awin-pc2.log 2>&1
|
|
||||||
@reboot /home/awin/script/fan_hddtemp_exportor.py > /home/awin/log/fan_hddtemp_exportor.log 2>&1
|
|
||||||
@reboot /home/awin/script/reboot_echo.sh > /home/awin/log/reboot.log 2>&1
|
|
||||||
```
|
|
||||||
Reference in New Issue
Block a user