vault backup: 2025-02-10 17:42:34

This commit is contained in:
2025-02-10 17:42:34 +08:00
parent 5752038f86
commit 6f358dc788
16 changed files with 44 additions and 84 deletions

View File

@@ -1,3 +1,11 @@
---
tags: cpp17
aliases:
date: 2025-02-10
time: 17:34:18
description:
---
Structured binding declaration 可以把對應的 tuple、pair、vector 展開,讓 code 更好讀。
## 展開 tuple
@@ -55,3 +63,6 @@ for (const auto& [name, phone] : phoneBook) {
std::cout << "Name: " << name << ", phone: " << phone << std::endl;
}
```
# 參考來源

View File

@@ -1,4 +1,10 @@
Language: C++11
---
tags: cpp11
aliases:
date: 2025-02-10
time: 17:38:00
description:
---
## header
```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)。
## 參考來源
# 參考來源
- [C++11 STL 的時間函式庫chrono Heresy's Space](https://kheresy.wordpress.com/2013/12/27/c-stl-chrono/)

View File

@@ -1,3 +1,11 @@
---
tags: cpp17
aliases:
date: 2025-02-10
time: 17:37:31
description:
---
for_each 是一個 function它的原型是
```cpp
template<class InputIterator, class Function>
@@ -21,4 +29,7 @@ for_each(
val += 1;
}
);
```
```
# 參考來源

View File

@@ -1,5 +1,5 @@
---
tags:
tags: cpp11, cpp14
aliases:
date: 2022-06-12
time: 18:21:42

View File

@@ -1,3 +1,11 @@
---
tags: cpp14
aliases:
date: 2025-02-10
time: 17:35:40
description:
---
move operator可以讓[[rvalue]]被參考從而進一部的消除複製的成本。例如以下的function會回傳一個很大的陣列
```cpp
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> dictionary2 = std::move(my_dictionary);
```
`std::move`之後my_dictionary的size會變成0。
`std::move`之後my_dictionary的size會變成0。
# 參考來源