Skip to main content

Command Palette

Search for a command to run...

#cpp-ck4ra5k7300nlv2s1jbkdp2qh

Articles tagged with #cpp-ck4ra5k7300nlv2s1jbkdp2qh

  1. 簡介 C++ 的 Type Erase (用多型和模板做 Duck Type)

    起點 讓我們先從 template 出發:foo 需要一個 callback function。 template<typename Func> void foo(Func callback) { // ... callback(); } 但是這會讓編譯錯誤訊息有點模糊:假如 callback 並不是一個可以呼叫的函數指標,或者並不是一個 callable object ,那編譯器會說錯出在第四行。但是我們都希望,編譯器在呼叫函數時就幫我們指出:這不是 foo 想要的 call...

    May 14, 20243 min read21
  2. C++ 中倒序存取陣列的型別問題

    前言 問題起源於這個迴圈,有時,我們會需要倒著存取陣列的元素。 std::vector<int> xs(10); for (size_t i = 9; i >= 0; --i) { // ... xs[i] } 這一部份有個問題,就是這會是無窮迴圈。 一個保留 size_t 型別的方式,是這樣寫: for (size_t i = 9 + 1; i--;) { // ... xs[i] } 這種寫法雖然不會對正確性產生影響,但是可能會對可讀性和可維護性造成一定程度的負面影響。...

    Apr 11, 20231 min read26
  3. Facebook 2022 Hacker Cup Round2

    2022 FB Hackercup Round2 比賽時只寫出 A1、 D1,A2是賽後補的。進不了 Round3 ,不過名次應該可以拿到 T-shirt。 感想:怎麼兩題都線段樹 🤣 Problem A: Perfectly Balanced Prob A2 題目 給定一個數列,要支援以下兩種操作: 單點修改:修改單個數字 區間查詢:確認該區間是否可以分成兩半,其中一半剛好和另一半只差一個數字。 Ex: [2, 2, 3] 可以被分成 [2] 和 [2, 3] [1, 3, 1, 1,...

    Oct 9, 20226 min read21
#cpp-ck4ra5k7300nlv2s1jbkdp2qh - 帕秋莉的魔法筆記