博客 / 列表

阿森CTO - C++拓展及命名空間的使用

@TOC 📝C++簡述 與C語言一樣,C++也是在貝爾實驗室誕生的,Bjarne Stroustrup於1979年首次推出,C++是一種高級編程語言,它是在C語言的基礎上發展而來,融合了面向對象的思想。它的特點是高效、低級和麪向對象。 在C++的發展歷程中,最為重要的里程碑是C++11標準的發佈。C++11版本增加了許多現代化的特性,例如類型推斷、lambd

命名空間 , 作用域 , 大數據 , yyds乾貨盤點 , 數據倉庫 , 嵌套

阿森CTO - vector模擬實現與核心機制

@TOC 📝基本框架 我們先定義自己的命名空間倆封裝自定義的vector類,這樣可以避免與標準庫中的 vector 發生命名衝突。隨即,我們定義模版類vector,三個成員變量都是迭代器,而vector迭代器又是原生指針,所以我們將指針取別名為iterator 框架代碼: namespace self { templateclass

大數據 , yyds乾貨盤點 , 初始化 , 迭代器 , 數據倉庫 , 構造函數

阿森CTO - 【STM32】新建工程

@TOC 一、關於窗口 1.建立項目文件夾 2.打開Keil-Create New Project,選擇剛剛建立的文件夾 3.在此文件夾裏建立工程模板,起個名字為Project 4.選擇器件型號,在此使用的是STM32C8T6 5.添加必要文件打開固件庫文件夾,可以看到啓動文件,全部複製下來,返回剛剛建立

庫函數 , 大數據 , yyds乾貨盤點 , 數據倉庫 , 引腳 , 寄存器

阿森CTO - 6種轉移表實現整合longjmp()/setjmp()函數和qsort函數詳解

@TOC 前言 本小節,我們將繼續學習C語言轉移表,什麼是回調函數,回調函數又是什麼?qsort函數怎麼使用,怎麼理解處理,要注意的細節,當然qsort使用舉例,最後我們進行qsort函數的模擬實現!文章乾貨滿滿,走起! 一、轉移表 C語言轉移表是指根據一定條件,實現程序執行流程的跳轉或轉移的機制。 具體來説

大數據 , yyds乾貨盤點 , 數據倉庫 , 回調函數 , switch語句 , 函數指針數組

阿森CTO - VSCode部署Ubantu雲服務器,與Xshell進行本地通信文件編寫

@TOC 📝前言 本文目的是講使用Vscode連接Ubantu,與本地Xshell建立通信同步文件編寫。 查看本機系統相關信息: cat /etc/lsb* DISTRIB_ID=Ubuntu: 表示這是 Ubuntu 發行版。 DISTRIB_RELEASE=22.04: 表示這是 Ubuntu

發行版 , 大數據 , yyds乾貨盤點 , 數據倉庫 , 打開文件 , Ubuntu

阿森CTO - linux信號捕捉,中斷

@TOC 📝前言 🌠 信號捕捉的流程 如果信號的處理動作是⽤⼾⾃定義函數,在信號遞達時就調⽤這個函數,這稱為捕捉信號。 由於信號處理函數的代碼是在⽤⼾空間的,處理過程⽐較複雜,舉例如下: ⽤⼾程序註冊了SIGQUIT 信號的處理函數sighandler 當前正在執⾏main 函數,這時發⽣中斷或異常切換到內核態

大數據 , yyds乾貨盤點 , 初始化 , 信號處理 , 數據倉庫 , 系統調用

阿森CTO - Linux多線程

@TOC 📝進程和線程 進程是資源分配的基本單位 線程是調度的基本單位 線程共享進程數據,但也擁有⾃⼰的⼀部分數據: 線程ID 一組寄存器 棧 errno 信號屏蔽字 調度優先級 🌠 進程的多個線程共享 同⼀地址空間,因此TextSegment、DataS

全局變量 , 大數據 , yyds乾貨盤點 , include , 數據倉庫 , i++

阿森CTO - Linux命令行工具

@TOC 📝前言 該文章j將介紹Linux中的常用系統工具和命令,如用於分頁顯示文本的more和less、顯示時間的date、管理日曆的cal、文件搜索的find和grep、以及壓縮/解壓縮的zip/unzip和tar。文中詳細解釋了每個命令的語法、功能和常用選項,並提供了示例。 🌠 more more 命令是一個分頁顯示文本文件內容的工具,它

大數據 , yyds乾貨盤點 , 搜索 , hive , 數據倉庫 , Linux

阿森CTO - Linux管理文件與處理數據

@TOC 📝前言 本文將介紹Linux系統中的常用命令:mv、cat、echo、重定向、head和tail,主要用於文件管理和數據處理。重點講解mv命令和重定向的示例,最後演示如何用head和tail快速提取大型文件中的指定行。 🌠 mv指令(重要): mv命令是move的縮寫,可以用來移動文件或者將文件改名(move (rename) fil

文件描述符 , 大數據 , yyds乾貨盤點 , 數據倉庫 , 重定向 , 標準輸出

阿森CTO - Ext系列文件系統--Ext2 文件系統的認識與構成

@TOC 📝ext2 ⽂件系統 🌠 宏觀認識 所有的準備⼯作都已經做完,是時候認識下⽂件系統了。我們想要在硬盤上儲⽂件,必須先把硬盤格式化為某種格式的⽂件系統,才能存儲⽂件。⽂件系統的⽬的就是組織和管理硬盤中的⽂件。在Linux 系統中,最常⻅的是ext2系列的⽂件系統。其早期版本為ext2,後來⼜發展出ext3和ext4。ext3 和ext4雖然對

大數據 , yyds乾貨盤點 , 數據塊 , 數據倉庫 , 文件大小 , 位圖

阿森CTO - linux指令與實踐文件編寫

@TOC 📝前言 本節阿森將和你一起深入淺出的學習簡單幾條指令,快速上手在linux寫代碼,同時更好的理解指令記憶 🌠 linux目錄結構 在linux系統中,磁盤上的文件和目錄被組成一個樹,每個節點都是目錄或文件,像是一個多叉樹的層次結構。如圖所示: 以上只是展示目錄的結構是目錄樹的結構,以下是 Linux 文件目錄結構的主要組

大數據 , yyds乾貨盤點 , 搜索 , 數據倉庫 , Linux , Css

阿森CTO - C++面向對象---多態

@TOC 多態是C++面向對象三大特性之一,核心價值在於為不同數據類型的對象提供統一接口,讓不同對象執行同一行為時呈現差異化效果,極大提升了代碼的靈活性和可擴展性。 一、多態的核心概念 簡單來説,多態就是“同一行為,不同表現”。生活中最典型的例子就是買票場景:普通人購票需支付全價,學生可享受半價優惠,軍人則擁有優先購票的特權。在編程中,這意味着通過統一的

虛表 , 大數據 , yyds乾貨盤點 , 虛函數 , 數據倉庫 , 派生類

阿森CTO - C++異常處理

@TOC C++異常處理:底層邏輯、實操方法與實戰技巧 一、背景知識 1.1 C語言的錯誤處理侷限 C語言處理錯誤的核心方式僅有兩種,且都存在顯著短板: 直接終止程序:像assert斷言這類方式,一旦檢測到非法條件(比如數組越界、空指針訪問)就直接終止程序。這種方式對用户極不友好,比如僅因一個參數錯誤就導致整個應用崩潰,完全沒有容錯

大數據 , yyds乾貨盤點 , 拋出異常 , 數據倉庫 , 緩存 , 錯誤碼

阿森CTO - C++ IO流

@TOC 一、C語言的輸入輸出機制 C語言中,輸入輸出主要依賴scanf() 和printf() 兩個核心函數。 scanf():從鍵盤等標準輸入設備讀取數據,將其存儲到指定變量中。 printf():將格式化後的內容輸出到屏幕等標準輸出設備。 C語言的輸入輸出依賴緩衝區實現,其核心作用有兩點: 屏蔽低級I

大數據 , yyds乾貨盤點 , 輸入輸出 , 字符串 , 數據 , 數據倉庫

阿森CTO - C++11線程庫

@TOC 在C++11標準出台前,多線程編程依賴系統原生接口——Linux的POSIX線程(pthread)與Windows的CreateThread接口互不兼容,導致跨平台代碼開發難度大、可移植性低。C++11首次將多線程納入標準庫,無需依賴第三方庫即可實現跨平台併發編程,同時引入原子操作類,為併發安全提供了原生支持。 一、C++11線程庫核心接口解析

大數據 , yyds乾貨盤點 , include , 數據倉庫 , i++ , ios

阿森CTO - C++進階模版 提升代碼複用性和可維護性

@TOC 📝前言 前面我們學習了初階模版,本節我們將學習模版進階 🌠 非類型模版參數 模版參數分類為兩種:類型形參與非類型形參。 類型形參:出現在模板參數列表中,跟在class或者typename之類的參數類型名稱。 非類型形參:就是用一個常量作為類型(函數)模版的一個參數,在類(函數)模版中可將該參數當做常量來使用。

實例化 , 模版 , 大數據 , yyds乾貨盤點 , data , 數據倉庫

阿森CTO - map與set應用

@TOC 在C++ STL的容器家族中,map和set作為核心關聯式容器,憑藉紅黑樹的底層實現,兼具自動排序、高效檢索的特性。 一、關聯式容器與鍵值對:基礎概念鋪墊 1.1 關聯式容器 vs 序列式容器 STL容器分為序列式容器(如vector、list、deque)和關聯式容器(如map、set、multimap、multiset),核心差異在於

紅黑樹 , 鍵值對 , 大數據 , yyds乾貨盤點 , 迭代器 , 數據倉庫

阿森CTO - STM32的USART串口通信

@TOC 一、通信接口 通信的目的:將一個設備的數據傳送到另一個設備,擴展硬件系統通信協議︰制定通信的規則,通信雙方按照協議規則進行數據收發 二、串口通信 串口是一種應用十分廣泛的通訊接口,串口成本低、容易使用、通信線路簡單,可實現兩個設備的互相通信 單片機的串口可以使單片機與單片機、單片機與電腦、單片機與各式各樣的模塊互相通信,極大地擴展

串口 , 大數據 , yyds乾貨盤點 , 數據 , 數據倉庫 , 寄存器

阿森CTO - 內聯函數和auto關鍵推導和指針空值

@TOC 📝內聯函數 內聯函數是一種編譯器優化技術,它可以將函數的代碼直接插入到函數調用的地方,而不是通過函數調用的方式。這樣可以減少函數調用的開銷,提高程序的執行效率。 舉個例子,當你在一個項目中,想要頻繁調用一個Add函數 int Add(int x, int y) { return x + y; } 當你調用一千次

數組 , 大數據 , yyds乾貨盤點 , 數據倉庫 , 編譯器 , 內聯函數

阿森CTO - 自定義類型:結構體深入解析

@TOC 📝前言 本小節,阿森繼續和你一起學習什麼是結構體?結構體類型的聲明和創建,然後就是結構體的初始化,隨即學習結構成員的訪問操作符來更好的打印結構體的數據,當然還有匿名結構體類型,和結構的自引用。文章乾貨滿滿,接下來我們就學習一下結構體吧 😃! 🌠 什麼是結構體? 結構體是一種用户定義的數據類型,它允許

大數據 , yyds乾貨盤點 , 初始化 , 操作符 , 數據倉庫 , 結構體指針

阿森CTO - C++內存管理的機制

@TOC 📝new和delete操作自定義類型 我們先看malloc與free,調試可以發現並不會調用析構函數 class A { public: A(int a = 0) : _a(a) { cout "A():" this endl; } ~A() { cout "~A():" this endl; }

數組 , 大數據 , yyds乾貨盤點 , 數據倉庫 , 構造函數 , ci

阿森CTO - 初始化列表與explicit

@TOC 📝再談構造函數 🌠 構造函數體賦值 在創建對象時,編譯器通過調用構造函數,給對象中各個變量一個合適的初始值 class Date { public: Date(int year, int month, int day) { _year = year; _month = month; _day = day;

初始化列表 , 大數據 , yyds乾貨盤點 , 初始化 , 數據倉庫 , 構造函數