原创 shell編程(一)變量

shell 變量 定義一個變量 my_first_var=1 如上代碼所示,定義了一個變量名爲my_first_var的變量,並且將其變量的值賦爲1。 注意 命名只能用英文字母,數字和下劃線,首個字符不能用數字開頭。 中間不能

原创 shell編程(二)命令行參數

main函數的命令行參數 在Linux 下,我們有時需要手動的將main函數的兩個命令行參數給出,然後程序才能正常運行,如下所示: #include<stdio.h> int main(int args, char* argv[

原创 C++中vector容器爲什麼擴容時按照2倍或者1.5倍進行擴容

擴容機制 首先在VS2013底下,vector的擴容操作是每次擴容*1.5;在GCC環境下是2倍。 GCC下的擴容方式是以二倍形式擴容。 VS2013下是以1.5倍進行擴容 所以可能會有疑問: 問題一:爲什麼非要以倍數的形式

原创 運行shell報錯:[: !-d: unary operator expected

運行shell報錯:[: !-d: unary operator expected 今日在編寫shell測試的時候,使用到了if 的邏輯判斷語句,然後在進行判斷一個文件(或目錄)是否存在的時候,shell無法進行運行,並報錯。 報

原创 shell編程(四)運算符

C/C++中的基本運算符 C/C++中有加減乘除等基本運算符,直接使用操作數加操作符就可以進行使用。如下所示: cout<<1+2<<endl; //計算1 + 2的值,平且打印 cout<<2-1<<endl; cout<<1

原创 switch和if else效率

switch case 與 if else switch case會生成一個跳轉表來指示實際的case分支的地址,這個跳轉表的索引號於switch變量的值相等。而 if else是需要順序的遍歷條件,直到條件成立。 switc

原创 C++多態(三)---多態的原理

C++多態 問題引入 求如下代碼所佔內存數 class B { public: virtual void Func() { cout << "Func()" << endl; } private: int _a =

原创 如何使用./ 執行和sh執行shell

方法一:給xxx.sh文件加上可執行權限 chmod 指令加上可執行性權限,然後直接使用./ + 文件名 就可以運行。 方法二:直接使用/bin/bash + 文件名執行 方法三:使用sh指令+文件名執行 其實方法二和方法三屬

原创 gcc的優化參數介紹(-O1,-O2,-O3,-Os)

-O的設置一共有5種常見的 O0:零,表示關閉所有優化選項, 也就是默認的參數,沒有進行優化 參數 -O1、-O2、-O3 中,隨着數字變大,代碼的優化程度也越高,不過這在某種意義上來說,也是以犧牲程序的可調試性爲代價的。 Os

原创 C++異常的種類

概述 C++中的異常是以繼承的方式展現出來的,exception只是一個抽象類,通過虛函數的方式來進行繼承,可以達到C++多態的效果。直接可以使用父類指針或者引用來捕獲異常。 詳細介紹 bad_typeid 在使用typeid運

原创 shell編程(十一)awk指令

awk指令 簡介 一般情況下,awk指令是進行文件內容的列操作,與sed相反,sed主要進行文件內容的行操作,這兩個指令就可以直接對一個文件進行快速的操作。 功能介紹 一般使用awk的列操作,默認情況下,是以空格進行分割。 首先創

原创 【算法】已知rand1() 生成rand5(),rand7()生成rand10()

rand1() 生成rand5() rand1 可以隨機返回0和1, 所以,想讓其生成等概率的0-5的數字 先需要讓其生成等概率的一組數(0-n) 然後再用這一組數來取模生成0-5 int rand1() { return

原创 shell編程(十)sed指令

sed指令介紹 sed指令是shell中常用常見的指令,一般使用sed來進行文本文件的處理。 一般sed指令是以行爲單位進行處理文本文件的。 參數說明 a:新增,在指定行的下方進行新增行 c:取代,取代n1到n2行之間的內容 d

原创 shell編程(八)select語句

select shell中的select直接生成一個菜單,然後供用戶進行選擇(使用1,2,3等數字進行) 簡單了用戶的操作方式,是程序運行具有更強的可讀性。 並且也完成了一個循環性的選擇腳本。 語法上因爲是循環性的選擇,所以需要

原创 shell編程(九)函數

C/C++中的函數 int func(int a, int b) { return a+b; } 在C/C++中,函數定義出,必須要有以下部分 函數名 返回值類型 參數列表 return進行返回 優點:比較精細,使用起來比較