原创 c++ --- 多態

多態 1.概念:多態就是多種形態。具體來說就是完成某個行爲,當不同的對象去完成的時候會產生不同的狀態。 2.構成條件 (1)被調用的對象必須是指針或者是引用。 (2)被調用的對象必須是虛函數,且完成了虛函數的重寫。 (

原创 劍指offer27 - 字符串的排列(c++)

題目描述:輸入一個字符串,按字典序打印出該字符串中字符的所有排列。例如輸入字符串abc,則打印出由字符a,b,c所能排列出來的所有字符串abc,acb,bac,bca,cab和cba。 **題解:**先將第一個數字與後面每一個數字

原创 c++ ---智能指針

爲什麼要使用智能指針? 智能指針的作用就是管理一個指針,因爲存在以下的情況:申請的空間在函數結束的時候忘記釋放,造成內存泄漏。使用智能指針可以很大程度上避免這一問題,因爲智能指針就是一個類,當超出了類的作用域之後,類就會自動調用析

原创 Linux --- 多線程

一.線程的基本概念 1.線程概念 進程是對運行時程序的封裝,是系統進行資源調度和分配的的基本單位,實現了操作系統的併發; 線程是進程的子任務,是CPU調度和分派的基本單位,用於保證程序的實時性,實現進程內部的併發;線程是操作系統可

原创 劍指offer32 - 把數組排成最小的數(c++)

題目描述:輸入一個正整數數組,把數組裏所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小的一個。例如輸入數組{3,32,321},則打印出這三個數字能排成的最小數字爲321323。 題解:可以用全排列的做法找到最小的數,但是

原创 vim編譯器的使用和gdb調試程序

一.vim編譯器的使用 vi/vim的區別簡單點來說,它們都是多模式編輯器,不同的是vim是vi的升級版本,它不僅兼容vi的所有指令,而且 還有一些新的特性在裏面。例如語法加亮,可視化操作不僅可以在終端運行,也可以運行於x win

原创 Linux --- 進程信號

一.信號入門 1.生活應用的信號 街道上的紅綠燈就是一個信號。 下課的鈴聲 古代的狼煙 2技術應用角度的信號 (1)用戶輸入命令,在shell下啓動一個前臺進程 用戶按ctrl + c,這個鍵盤輸入產生了一個硬件信號,被os獲取

原创 c++ --- 異常

在沒學習c++之前,我們如果在程序中遇到異常錯誤,可能會用以下的處理方式 1.終止程序,如assert,缺陷:用戶難以接受,如果發生內存錯誤,除0錯誤就會終止程序。 2.返回錯誤碼,缺陷:需要程序員自己去查找對應的錯誤。如系統的

原创 c語言 --- 動態內存開闢

我們在學習內存的時候,都會知道下面三種內存開闢的方式: 1.從靜態存儲區分配,生命週期隨程序的結束而結束,比如全局變量,static變量 2.從棧空間分配,函數調用完其被自動釋放 3.從堆空間分配,即動態內存開闢,比如:mall

原创 c++ --- 類型轉換

在學習c++類型轉換之前,我們要先看一下c語言時學習的類型轉換。c語言學過兩種類型轉換: (1)隱式類型轉換 (2)顯示的強制類型轉換 void Test() { int i = 1; //隱式類型轉換 double d

原创 c++ --- vector

一.vector的介紹和使用 (1)vector是可變大小數組的序列容器。 (2)就像數組一樣,vector也採用連續存儲空間來儲存元素。也就意味着可以採用下標對vector的元素進行訪問,和數組一樣高效。但是又不像數組,它的大

原创 C語言自定義類型

在學習C語言的時候,它有很多的自定義類型,例如:結構體,枚舉,聯合。。。 這些類型在我們的日常使用的時候,或多或少的都會遇見到,下面就係統的介紹一下這幾種類型。 一.結構體 1.結構體類型的聲明:通俗點來說,結構就是一些值的集合,

原创 c++ --- STL --- string

c++最爲重要的一大組成部分就是STL,它不僅僅是一個可複用的組件庫,而且是一個包羅數據結構和算法的軟件框架。STL的六大組件: 一:序列式容器, 有string,vector, list, deque 二 : 關聯式容器,

原创 c語言 --- 程序環境

程序環境分爲兩種:翻譯環境和執行環境。 下面就對這些情況做下總結。 一.翻譯環境 (1.)翻譯環境中源代碼被轉換爲可執行的機器指令。 (2)組成一個程序的每個源文件通過編譯過程分別轉換爲目標代碼(object code)。 (3

原创 c語言 --- 文件操作

以前在沒學習c語言的時候,如果有人問我,什麼是文件的話,我會這樣回答,文件就是存儲在磁盤上的一些數據。。。好像有點說得過去。當學習了之後對文件進行了如下的總結: 什麼是文件 在程序設計中,我們談的文件有兩種:程序文件、數據文件