如何區分 declaration 和 definition

C 和 C++ 都有宣告 declaraction 和定義 definition 的區別 ,這篇文章就想要把這兩個的差別探討清楚。

declaration,讓編譯器知道變數的型別和名稱,好讓編譯器可以做語法檢查。

definition ,一旦寫出定義式,該變數將被配置好需要的記憶體空間,同時可以為其設定初值。而 definition 也是一種 declaration 。

C 和 C++ 都有宣告 declaraction 和定義 definition 的區別 ,本篇文章將探討這兩個的差異。

declaration 宣告讓編譯器知道變數的型別和名稱,以便進行語法檢查;
而 definition 定義則表示該變數已被配置好所需的記憶體空間並可以設定初值。需特別注意, definition 也是一種 declaration 。

閱讀全文〈如何區分 declaration 和 definition〉

[C++] map 的 subscript 運算子跟你想的不一樣

map 是一個 key-value pairs 群集, key 可以被當作索引,用以取回 value 。

這篇文章想講的重要的觀念就是,map 的下標操作(subscripting, [] 運算子)的行為與 vector 和 array 下標操作非常不同,即便索引尚未存在,我們可以直接使用尚未存在的索引,用來幫 map 添加一個帶索引的元素。

閱讀全文〈[C++] map 的 subscript 運算子跟你想的不一樣〉

Merge Intervals – 陪你刷題

使用 Merge Interval 技巧可以有效解決重疊區間的問題。這類問題可以分為找出重疊的區間或將重疊的區間合併在一起。在解決這類問題之前,首先需要歸納區間之間的關係。在本文的圖表中,兩個區間之間的關係可以歸納為六種情況。

Merge Interval 技巧可以有效解決 Overlapping intervals 的問題,這類問題可以衍生為找出 overlapping intervals 或是將 overlapping intervals 合併在一起,解決這類問題前,先歸納出區間之間關係,共有下圖六種狀況:

閱讀全文〈Merge Intervals – 陪你刷題〉