@c++

動態 列表
@u_16985197

[C++]異常處理機制

C語言本身沒有處理異常的機制,通常需要通過錯誤碼(error)、assert、全局變量、函數返回值等方法處理錯誤;這種處理方法雖然邏輯直觀,但是多層調用時需逐層傳遞且無法自動清理資源,功能有限。 所以,Bjarne Stroustrup在設計C++時,為了更好地處理程序中的錯誤,將異常處理機制引入了C++,其基本思想是讓函數在發現自己無法處理的錯誤時拋出一個異常,然後由其調

u_16985197 頭像

@u_16985197

昵稱 Plume岣七

@u_16985197

[Linux]探索進程的奧秘:從硬件到軟件的全面解析

在計算機科學中,進程是一個至關重要的概念。它是操作系統中最基本的執行單元,也是實現併發和多任務處理的關鍵。《操作系統概念》一書中提到:"進程是正在執行的程序,是程序執行過程中的一次指令、數據的集合,也可以叫做程序的一次執行過程。"然而,要真正理解進程,需要我們跨越硬件和軟件開始,深入探索期底層原理和工作機制。 一.硬件:馮諾依曼體系結構 1.核心框架 馮諾依曼體

u_16985197 頭像

@u_16985197

昵稱 Plume岣七

@u_16231477

【計算機網絡】408考研必備:計算機網絡物理層知識點精講​​

(基本概念) 導讀 大家好,很高興又和大家見面啦!!! 計算機網絡是一個極其複雜的系統,為了將這種複雜性化繁為簡,工程師們採用了 “分層” 的設計思想。這就像建造大樓,穩定的地基和清晰的結構是確保其功能的基礎。計算機網絡的體系結構,正是這樣一份至關重要的 “建築設計圖”,它定義了網絡應該如何分層,以及每一層需要完成什麼功能。 在前面的內容中,我們學習了主流的網絡模型

u_16231477 頭像

@u_16231477

昵稱 蒙奇D索隆

@u_16231477

【計算機網絡】408考研必備:計算機網絡物理層知識點精講​​

(基本概念) 導讀 大家好,很高興又和大家見面啦!!! 計算機網絡是一個極其複雜的系統,為了將這種複雜性化繁為簡,工程師們採用了 “分層” 的設計思想。這就像建造大樓,穩定的地基和清晰的結構是確保其功能的基礎。計算機網絡的體系結構,正是這樣一份至關重要的 “建築設計圖”,它定義了網絡應該如何分層,以及每一層需要完成什麼功能。 在前面的內容中,我們學習了主流的網絡模型

u_16231477 頭像

@u_16231477

昵稱 蒙奇D索隆

@hankin_liu

從彙編看內存序:C++ 內存模型在 Intel 架構下到底做了什麼

一、引言 在多線程程序中,C++ 內存模型定義了跨線程訪問共享變量時的行為保證。 它規定了不同操作之間的 可見性 與 順序性,通過諸如 memory_order_relaxed、memory_order_release、memory_order_acquire、memory_order_seq_cst 等語義,讓開發者能夠在性能與正確性之間做出權衡。 然而,C++ 的內存模型只是一個

hankin_liu 頭像

@hankin_liu

昵稱 Hankin_Liu收徒

@zengjingaiguodekaomianbao

當管理者開始領導上百個“智能體”,我們該慌了嗎?

當你的同事是會感知、能決策的“智能體”,你的價值將如何重新定義? 從軟件工具到AI同事:企業服務賽道迎來範式革命 近日,在一年一度的行業大會上,國內頭部企業管理軟件廠商金蝶宣佈,將其核心品牌全面升級為“AI”,並旗幟鮮明地指出:“企業管理軟件已進入AI時代。” 這並非個例。從全球的Salesforce、SAP,到國內的各大廠商,在基本完成“雲轉型”後,向“AI轉型”已成為整個企業服務賽道共

zengjingaiguodekaomianbao 頭像

@zengjingaiguodekaomianbao

昵稱 曾經愛過的烤麪包

@starrocks

StarRocks 源碼實驗室 EP.1—— 內置函數

​什麼是 StarRocks 源碼實驗室? 引用 閲讀源碼是開發者深入瞭解一個項目的好方法,不僅可以更好地理解程序的邏輯和實現方式,對於調試和修改代碼也非常有幫助。對於想要加入 StarRocks 社區貢獻的小夥伴來説,這是必要的學習之一,因為了解 StarRocks 內部運作機制有助於快速上手並參與到開發工作中。 為此,StarRocks 社區推出了 StarRocks 源碼實驗

starrocks 頭像

@starrocks

昵稱 StarRocks

@hedzr

C++ 的枚舉類型

Prologue: C++ 中的枚舉類型應用以及轉換到字符串的增強:AWESOME_MAKE_ENUM,... Original From: HERE 因為臨時發現需要一個枚舉量到字符串的轉換器,所以乾脆梳理了一遍古往今來的枚舉類型的變化。 於是奇怪的冷知識又增加了。 枚舉類型 enum 在 cxx11 之前,C/C++ 通過 enum 關鍵字聲明枚舉量。 // 匿名全局枚舉

hedzr 頭像

@hedzr

昵稱 hedzr

@hedzr

談 C++17 裏的 FlyWeight 模式

回顧享元模式,考慮實作它的各種問題。 Prologue 略過 FlyWeight Pattern 理論 享元模式,是將複雜對象的相同的組成元素抽出並單獨維護的一種結構型設計模式。這些相同的組成元素被稱為共享元件,它們在一個單獨的容器中被唯一性地管理,而複雜對象只需持有到該唯一實例的參考,而無需重複創建這樣的相同的元素,從而能夠大幅度地削減內存佔用。 以字處理器為例,每個字符都具有獨立的、區別於其它

hedzr 頭像

@hedzr

昵稱 hedzr

@hedzr

談 C++17 裏的 Visitor 模式

Visitor Pattern 訪問者模式是一種行為模式,允許任意的分離的訪問者能夠在管理者控制下訪問所管理的元素。訪問者不能改變對象的定義(但這並不是強制性的,你可以約定為允許改變)。對管理者而言,它不關心究竟有多少訪問者,它只關心一個確定的元素訪問順序(例如對於二叉樹來説,你可以提供中序、前序等多種訪問順序)。 組成 Visitor 模式包含兩個主要的對象:Visitable 對象和 Vis

hedzr 頭像

@hedzr

昵稱 hedzr

@hlinleanring

【C/C++實用工具】內存相關問題排查工具---cppcheck與valgrind

C++中令人疑惑的內存問題 C++的內存問題時常令人十分困惑。總結起來C++的內存問題可以分為以下幾類 內存泄露 當程序員使用new(或malloc)關鍵字分配內存而忘記使用 delete (或free)函數或 delete[] 運算符釋放內存時,C++ 中就會發生內存泄漏。在 C++ 中使用錯誤的刪除運算符會發生內存泄漏最多的情況之一。delete 運算符應用於釋放單個分配的內存空

hlinleanring 頭像

@hlinleanring

昵稱 侯磊

@fanqiemao

[C++]C風格、C++風格和C++11特性的線程池

線程池概念 假設完成一項任務需要的時間=創建線程時間T1+線程執行任務時間T2+銷燬線程時間T3,如果T1+T3的時間遠大於T2,通常就可以考慮採取線程池來提高服務器的性能 thread pool就是線程的一種使用模式,一個線程池中維護着多個線程等待接收管理者分配的可併發執行的任務。 避免了處理短時間任務時創建與銷燬線程的代價 既保證內核的充分利用,又能防止過度調度 可用線程數量應該取決於

fanqiemao 頭像

@fanqiemao

昵稱 番茄貓

@hlinleanring

C++的移動構造函數和移動賦值運算符

什麼是移動構造 在 C++ 11 標準之前(C++ 98/03 標準中),如果想用其它對象初始化一個同類的新對象,只能藉助類中的複製(拷貝)構造函數。在C++11中,引入了右值引用,提供了左值轉右值的方法,避免了對象潛在的拷貝。而移動構造函數和移動賦值運算符也是通過右值的屬性來實現的。直觀的來講,移動構造就是將對象的狀態或者所有權從一個對象轉移到另一個對象。只是轉移,沒有內存的搬遷或者內存拷貝所以

hlinleanring 頭像

@hlinleanring

昵稱 侯磊

@manxisuo

寫一個只觸發一次槽函數的Qt connect函數

在之前的Qt項目中,我發現經常會用到槽函數只需要執行一次的情況。也就是説,槽函數執行一次後,就需要disconnect對應的連接。然而,真正操作起來實際上挺麻煩的,或者説不優雅。因為你需要把之前connect時產生的QMetaObject::Connection對象保存起來,而保存它不能用局部變量,通常需要保存到類的成員變量中,或者其他生命週期足夠長的地方,以防止在disconnect它的時候,它

manxisuo 頭像

@manxisuo

昵稱 manxisuo

@caisekongbai

提升面試成功率:深入理解 C++ 11 新特性

C++11是C++語言的一個重大更新,引入了許多新特性,包括自動類型推導、lambda表達式、右值引用、智能指針等等。這些新特性使得C++更加現代化、高效、易用。也是面試容很容易被問到一個問題,下面我將簡要介紹一些C++11的新特性 自動類型推導 C++11引入了auto關鍵字,可以讓編譯器自動推導變量的類型。這樣可以減少代碼中的重複代碼,提高代碼的可讀性和可維護性。例如: auto i = 42

caisekongbai 頭像

@caisekongbai

昵稱 小萬哥

@wunima

學懂現代C++——《Effective Modern C++》之類型推導和auto

前言 之前分享過Scott Meyers的兩本書《Effective C++》和《More Effective C++》。這兩本書對我深入學習C++有着很大的幫助,建議所有想進階C++技術的同學都可以看看。但是,這兩本書是大神Scott在C++11之前出的,而C++11對於C++社區來説是一次重大的變革,被稱為現代C++,用以區分C++11之前的傳統C++。 好在Scott在之後也帶來了全新的《E

wunima 頭像

@wunima

昵稱 吳尼瑪

@masutaadashi

C語言內存泄漏的常見情況及解決方案

內存泄漏(Memory Leak)是指程序在申請內存後,無法釋放已申請的內存空間,一次小的內存泄漏可能沒什麼影響,但長期或頻繁發生會佔用大量內存,影響系統性能甚至引發系統崩潰,造成系統資源的浪費。 內存泄漏存在於諸多編程語言中,是一種普遍的常見的問題。 以C和C++為代表的允許程序員直接管理內存的語言。內存泄漏的常見原因是程序員顯式地分配了內存,但忘記釋放不再需要的內存。 以Java、Pyt

masutaadashi 頭像

@masutaadashi

昵稱 Masutaa大師

@liu_chen

c++的時間管理:chrono庫

貼一個解釋得相對詳細的帖子 https://renyili.org/post/std_chrono/ chrono裏面用到了比較多的庫裏自定義的概念,我寫一下學習筆記如下。 庫裏定義了三種時間相關的模板類 1. time_point 第一種表示使用某個計時時鐘類型來記錄的時間點 templateclass Clock, class Duration = typename Clock::durati

liu_chen 頭像

@liu_chen

昵稱 路名一

@ishare

深入解析C++的auto自動類型推導

關鍵字auto在C++98中的語義是定義一個自動生命週期的變量,但因為定義的變量默認就是自動變量,因此這個關鍵字幾乎沒有人使用。於是C++標準委員會在C++11標準中改變了auto關鍵字的語義,使它變成一個類型佔位符,允許在定義變量時不必明確寫出確切的類型,讓編譯器在編譯期間根據初始值自動推導出它的類型。這篇文章我們來解析auto自動類型推導的推導規則,以及使用auto有哪些優點,還有羅列出自C+

ishare 頭像

@ishare

昵稱 愛分享

@wodekouwei

深入理解rtmp(二)之C++腳手架搭建

前面深入理解rtmp(1)之開發環境搭建中我們已經搭建好服務器,並且利用一些現成的工具可以推送直播流,播放直播流了.這篇文章我們開始搭建從零開發一套rtmp推流拉流sdk,對着協議實現,達到真正的"深入理解". 作為一個碼農,搬磚搬到一定高度就需要"腳手架"來支撐我們"夠得住".為了方面我們把rtmp推拉流sdk實現為一個PC上的命令行程序,當開發調試穩定後,我們可以快速的通過交叉編譯工具編譯到A

wodekouwei 頭像

@wodekouwei

昵稱 輕口味