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 更好讀。
|
||||
|
||||
## 展開 tuple
|
||||
@@ -55,3 +63,6 @@ for (const auto& [name, phone] : phoneBook) {
|
||||
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
|
||||
```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/)
|
||||
@@ -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;
|
||||
}
|
||||
);
|
||||
```
|
||||
```
|
||||
|
||||
|
||||
# 參考來源
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
tags:
|
||||
tags: cpp11, cpp14
|
||||
aliases:
|
||||
date: 2022-06-12
|
||||
time: 18:21:42
|
||||
|
||||
@@ -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。
|
||||
|
||||
|
||||
# 參考來源
|
||||
|
||||
Reference in New Issue
Block a user