原创 dynamic_cast(C++primer習題19.3)

首先經過自己手敲得打的答案是對,錯,錯 #include <iostream> using namespace std; class A{ public: A(){}; virtual ~A(){}; }; class

原创 C++erase()

偶然發現了當vecotr在erase最後一個iter之後,仍然可以++代表一個值,而不爲空。 vector<int> nums={3,2,3,4}; int val=3; auto iter=nums.begin(); while(*i

原创 Ubuntu JetBrains(JetBrains Account Error:JetBrains Account connection error: www.jetbrains.com)

問題:Your host may be behind a proxy. 在使用學生免費賬戶登錄的時候出現錯誤 解決:修改/etc/hosts文件,將其中的 jetbrains的相關行去掉即可。

原创 bash的pipe命令

pipe命令又稱爲管道命令 與連續執行命令不同,pipe命令是利用|將命令分割,處理前面一條命令傳來的正確信息(標準輸出信息)。 注意: 管道命令僅會處理標準輸出,對於標準錯誤會予以忽略。 管道命令必須能夠接收前一個命令的數據成爲標準輸入

原创 Linux下硬鏈接與符號鏈接

需要對文件系統中的文件和目錄有較好的理解才能輕鬆的理解兩種鏈接 硬鏈接hard link 將多個文件名對應到同一個文件的inode號,這就是硬鏈接的由來。 硬鏈接的核心是在硬鏈接所在目錄的數據區塊中添加一條關聯數據:硬鏈接這個文件的名字和

原创 Ubuntu開機後五個點(gcc離線安裝)

0.首先說明一下背景,昨天電腦死機後,強制關機,導致開機後只有五個點循環閃爍,進不去桌面。 所以強制關機還是儘量避免吧。 1.在五個點的界面,不能通過ctrl+alt+f1來進入tty1界面。 但是grub界面還是沒有問題的,選擇Ubun

原创 STL源碼剖析iterators與traits

iterator概述 迭代器是一種抽象的設計概念。《Design Patterns》中對iterator的定義如下:提供了一種方法,使之能夠依序巡防某個聚合物(容 器)所含的各個元素,而又無需暴露聚合物的內部表述方法。 迭代器最重要的編程

原创 STL源碼剖析allocator

查找C++primer中的allocate 具備次配置力(sub-allocation)的SGI空間配置器 SGI標準的空間配置器,std::allocator         SGI定義了一個符合部分標準,名爲allocator的配置器

原创 狀態模式以及頭文件相互包含

狀態模式 當一個對象的內在狀態改變時允許改變其行爲,這個對象看起來像是改變了其類。 狀態模式主要解決的是當控制一個對象狀態轉換的條件表達式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類當中,可以把複雜的判斷邏輯簡化。 狀態

原创 前綴樹C++實現

1 什麼是Trie樹         Trie樹,即前綴樹,又稱單詞查找樹,字典樹,是一種樹形結構,是一種哈希樹的變種。典型應用是用於統計和排序大量的字符串(但不僅限於字符串),所以經常被搜索引擎系統用於文本詞頻統計。   Trie樹的核

原创 STL源碼剖析hashtable

hashtable概述       在前面介紹的RB-tree中,可以看出紅黑樹的插入、查找、刪除的平均時間複雜度爲O(nlogn)。但這是基於一個假設:輸入數據具有隨機性。而哈希表/散列表hash table在插入、刪除、查找上具有“平

原创 STL源碼剖析RB-tree

一、紅黑樹概述      紅黑樹和我們以前學過的AVL樹類似,都是在進行插入和刪除操作時通過特定操作保持二叉查找樹的平衡,從而獲得較高的查找性能。不過自從紅黑樹出來後,AVL樹就被放到了博物館裏,據說是紅黑樹有更好的效率,更高的統計性能。

原创 C++ explicit和implicit

一、類類型轉換 首先,明確什麼是類類型轉換, 內置類型存在定義了幾種自動轉換的規則,同樣地,類也有定義隱式的轉換規則。 若構造函數沒有聲明explicit且只接受一個實參,則它可以進行隱式的類類型轉換。(如何將一種類類型轉換爲另一種類類型

原创 C++static的使用

詳見:https://blog.csdn.net/chenyijun/article/details/81938287 static的使用主要爲兩部分:不涉及類的static和涉及類的static 一、C/C++的內存分佈 1.棧區:

原创 C++分割字符串

利用C++中的strtok函數來將string使用指定字符串分割。 strtok函數 頭文件:#include <cstring>  函數原型:char * strtok (char *str, const char * delimite