原创 C++ STL 之 map
map 是“關鍵字——值”對的集合。即 map<index, value> 其中 index 和 value 可以是各種類型,如 int, char, string,甚至是 STL 容器對象。 map 中的元素默認按 index 的增
原创 C++ STL 之 multimap
閱讀此篇前若有需要請先參看 C++ STL 容器 map 的介紹。 map 中不允許存在相同的元素,而 multimap 允許。這一設計上改變也帶來一些使用上的不同。 訪問 multimap 中的元素 由於 multimap 中允
原创 ElasticSearch與Kibana簡介及使用入門
Elasticsearch一款基於Apache Lucene™開源搜索引擎,其核心是迄今爲止最先進、性能最好的、功能最全的搜索引擎庫Lucene。Elasticsearch使用簡單,具有非常強大的全文搜索功能: 分佈式的實時文件
原创 C++ 可調用對象
在使用一些基於範圍的模板函數時(如 sort()、all_of()、find_if() 等),常常需要我們傳入一個可調用對象,以指明我們需要對範圍中的每個元素進行怎樣的處理。可調用對象可以是函數、函數指針、lambda表達式、bi
原创 C++ 讀取一行輸入到數組
#include<iostream> #include<string> #include<sstream> #include<vector> using namespace std; int main() { string lin
原创 C++ STL 之 set
set 是數學中“集合”概念的實現,故 set 中不會存在任意兩個相同的元素。 定義 set<int> set_1 初始化 由於 set 中不允許有重複的元素,故 set 對象只接受列表初始化(C11 標準支持),如 set<int>
原创 C++ STL 之 heap
C++ 中的 heap 並不是一個單獨的 STL 容器,而是基於 vector 的一系列算法。需要引入頭文件 #include <algorithm> 構造堆 使用 make_heap(beg, end)將迭代器範圍 [beg,
原创 C++ STL 之 deque
deque 是 C++ 對數據結構雙端隊列的實現。要使用 deque,請在程序頭添加: #include <deque> using name space std; deque 對象的定義與初始化 deque<int> dq;
原创 二叉樹的非遞歸遍歷
二叉樹的遍歷有三種經典方式:前序遍歷、中序遍歷、後序遍歷。 遞歸遍歷 遞歸的寫法非常簡單: 前序遍歷 void preorder_traverse(tree_node* root) { if (root == nullpt
原创 C++ STL 之 string
string 是 C++ 對數據結構字符動態數組的實現。要使用 string,請在程序頭添加: #include <string> using name space std; string 對象的定義與初始化 string<int>
原创 Linux 文件權限
由於在linux中的每個用戶必須屬於一個組,相應的每個文件也就有了所有者、所在組、其它組的概念。 所有者:一般爲文件的創建者 文件所在組:所有者所在的組 其他組:不是所有者,不屬於文件所在組的其他用戶均屬於此文件的其他組。 文件權限
原创 C++ STL 容器 multimap
閱讀此篇前若有需要請先參看 C++ STL 容器 map 的介紹。 map 中不允許存在相同的元素,而 multimap 允許。這一設計上改變也帶來一些使用上的不同。 訪問 multimap 中的元素 由於 multimap 中允許存
原创 C++ STL 容器之 deque
deque 是 C++ 對數據結構雙端隊列的實現。要使用 deque,請在程序頭添加: #include <deque> using name space std; deque 對象的定義與初始化 deque<int> dq; //
原创 C++ STL 之 heap詳解
C++ 中的 heap 並不是一個單獨的 STL 容器,而是基於 vector 的一系列算法。需要引入頭文件 #include <algorithm> 構造堆 使用 make_heap(beg, end)將迭代器範圍 [beg, en
原创 可調用對象
在使用一些基於範圍的模板函數時(如 sort()、all_of()、find_if() 等),常常需要我們傳入一個可調用對象,以指明我們需要對範圍中的每個元素進行怎樣的處理。可調用對象可以是函數、函數指針、lambda表達式、bind