「python tuple取值」的推薦目錄:
python tuple取值 在 大象中醫 Youtube 的精選貼文
python tuple取值 在 大象中醫 Youtube 的精選貼文
python tuple取值 在 Python tuple 元組用法與範例 的推薦與評價
以下內容將分為這幾部份,. Python 建立元組tuple; 讀取元組的元素,元組索引; 元組索引值為-1 或-n ... ... <看更多>
python tuple取值 在 Python 有序列表的基本運算- List、Tuple By 彭彭 - YouTube 的推薦與評價
喜歡彭彭的教學影片嗎?點擊「加入」按紐取得更多會員服務哦。加入會員:https://www.youtube.com/channel/UCguZS ... ... <看更多>
python tuple取值 在 Re: [問題] tuple如何用for迴圈取值- 看板C_and_CPP 的推薦與評價
※ 引述《nevak (^o^)》之銘言:
: 雖然原文有點長不過聽起來應該就是做參數的Cartesian product
: Python有人說過了秒解XD,C++當作練習其實也滿不錯的
: 這應該面試也常常會考吧XD
: Cartesian product最直覺就DFS走一次
: 實作上來說,看你最後是要給system()用,其實直接把參數做成string應該會單純很多
: 如果你一開始的那些參數的列表一定要用不同型態的vector的話
: 就會有點麻煩需要用template https://glot.io/snippets/fou4l2ksnm
: 如果你那些參數列表都用vector<string>來宣告的話
: 就把所有參數訂在vector<vector<string>>,練習寫個DFS吧
: 應該是不會需要用到tuple
為了怕初學者誤解這裡的程式碼, 還是單獨回一篇.
因為許多人學習 C++ 的管道並不是書籍, 而是網路上的文章, 再加上從
程式碼範例望文生義, 最終理解就會和語言設計不同.
首先來談談 auto 修飾符的用法. auto 依賴使用者完全知道給定的敘述
型別為何, 不然不僅無法寫出型別安全 (type safe) 的程式, 反而還造
成潛在問題 (auto 是為了型別安全而設計, 雖然也帶來便利性, 但後者
不是主要目的). 如下面的例子:
std::array values{1, 2, 3};
for (auto idx = 0; idx < size(values); ++idx) {
~~~~^~~~~~~~~~~~~~ error
std::cout << "values[" << idx
<< "] = " << values[idx] << std::endl;
}
為了解決這個問題 C++23 導入了 uz/z 整數後綴 [P0330], 只是標準庫
先迎來了 ssize() 函式 [P1227]. auto 在源頭盡可能地省下轉型成本,
卻導致了我們在後續使用上需小心別掉入自己的假設陷阱.
再來是 initializer list (語法) 的使用, 除了可拿來初始化陣列以及
結構物件, 加強版功能率先在 [N1509] 被提出來, 主要為支援以下兩種
情境:
1. initializer list 拿來當敘述使用 (間接功能)
2. initializer list 拿來初始化容器 (主要功能)
在 C++11 以前, 初始化物件非常麻煩, 遂出現許多冗餘的寫法:
// case #1
struct S { int a, b; };
void f(S);
S s;
s.a = 1;
s.b = 2;
f(s); // method #1, error prone
f({1, 2}); // method #2, need C++11 support
// case #2
int a[] = {0, 1, 2};
std::vector<int> v(a, a + 3); // method #1, error prone
std::vector<int> v2 = {0, 1, 2}; // method #2, need C++11 support
最開始還只是語言支援, 後來才導入 std::initializer_list 代理物件
的概念 [N2215] 來幫助編譯器在遇到使用 initializer list 初始化物
件時, 選用合適的建構子呼叫. 在這之後幾乎所有容器都加入了接受
std::initializer_list 的多載建構子版本 [N2679].
所以嚴格說起來用 auto 來接 std::initializer_list 物件並不是後者
的設計本意, 它本身不算是容器, 而是作為容器的初始化介面型別 (所
以不存在 assign()/erase() 等成員函式). 雖然這份程式碼還是編譯得
過, 但在 C++ 社群裡幾乎不會有這種非正規用法.
References
[P0330R8] Literal Suffixes for (signed) size_t
https://wg21.link/p0330r8
[P1227R2] Signed ssize() functions, unsigned size() functions
https://wg21.link/p1227r2
[N1509] Generalized Initializer Lists
https://wg21.link/n1509
[N2215] Initializer lists (Rev. 3)
https://wg21.link/n2215
[N2679] Initializer Lists for Standard Containers (Revision 1)
https://wg21.link/n2679
--
[P1389R1] Standing Document for SG20: Guidelines for
Teaching C++ to Beginners
https://wg21.link/p1389r1
SG20 Education and Recommended Videos for Teaching C++
https://www.cjdb.com.au/sg20-and-videos
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.76.216 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1593636441.A.1C2.html
※ 編輯: poyenc (123.193.76.216 臺灣), 07/02/2020 05:25:26
... <看更多>