原创 普通函數和類成員函數const重載
函數參數的const重載只能重載引用型的,因爲非引用的const和普通的非const參數一樣。 成員函數用const重載總共有三種方式,有三個地方可以寫const,要注意const在不同的地方的意義。 #include<iostream>
原创 矩陣連乘時最少乘法次數
可以用遞歸,就是速度慢些,也可以直接把遞歸改成自頂向下的動歸,或者直接用自底向上的動歸,都可以,不過這裏只是爲了計算14年阿里筆試的一道題,所以就直接寫了個遞歸版本的。 代碼: #include<iostream> using names
原创 new和malloc的區別
1. malloc()函數 1.1 malloc的全稱是memory allocation,中文叫動態內存分配。 原型:extern void *malloc(unsigned int num_bytes); 說明:分配長度爲num_
原创 C++虛擬繼承例子
代碼如下: #include<iostream> using namespace std; class Base { public: void fun(){cout<<"Base::fun"<<endl;} virtual v
原创 c++ 虛繼承詳解
#include <iostream> using namespace std; class A { virtual void f(){}; }; class B : public virtual A{ virtual vo
原创 c++重載、覆蓋和隱藏
4.c++重載、覆蓋、隱藏的區別和執行方式 既然說到了繼承的問題,那麼不妨討論一下經常提到的重載,覆蓋和隱藏4.1成員函數被重載的特徵 (1)相同的範圍(在同一個類中); (2)函數名字相同; (3)參數不同; (4)virtu
原创 作業、進程、線程
轉自:http://blog.csdn.net/hguisu/article/details/1910803 1. 基本概念 作業:用戶在一次解決或是一個事務處理過程中要求計算機系統所做的工作的集合,它包括用戶程序、所需要的數據集
原创 vector的所有函數和使用的注意事項
1、構造函數: (1)vector<> v;默認構造函數 (2)vector<> v1(v)或v1=v;拷貝構造函數 (3)vector<> v2(v.begin(),v.end());用迭代器作
原创 用優先級隊列實現霍夫曼編碼
用優先級隊列實現霍夫曼編碼,採用貪心算法,每次從優先級隊列中選取兩個最小元素進行合併。 注意用優先級隊列時用的是小頂堆,採用仿函數做比較器,不能用函數指針來實現。 代碼如下: #include<iostream> #include<que
原创 最長上升子序列
思路:用動態規劃+二分搜索進行 #include<iostream> using namespace std; //二分搜索,返回>=target的第一個數的下標 int binarySearch(int *A,int N,int ta
原创 設計一個Cache系統 【雙向鏈表+哈希表】
轉自:http://blog.csdn.net/yangcs2009/article/details/38351573 今天去面試,面試官讓我設計一個cache系統,要求保證最近使用的數據不能被移除出cache,也就是每次添加一個ca
原创 static的含義以及其在C/C++中的區別
轉自:http://blog.csdn.net/yangcs2009/article/details/38359173 static關鍵字是C, C++中都存在的關鍵字. 它主要有三種使用方式, 其中前兩種只指在C語言中使用, 第三種在C
原创 union中的內存分配
在union聯合體中,所有的變量是公用一個內存的,即以最大內存變量作爲整個union的內存空間進行申請。同時也服從內存對其的策略,即如果同時又一個char和一個int類型,則佔據4個字節的內存空間,最低字節就是char所對應的值,而如果單
原创 進程、線程通信與同步
1.0 Linux進程間通訊 管道/FIFO:管道中還有命名管道和非命名管道(即匿名管道)之分,非命名管道(即匿名管道)只能用於父子進程通訊,命名管道可用於非父子進程,命名管道就是FIFO,管道是先進先出的通訊方式 消息隊列:消息
原创 程序、進程和作業的關係
程序與進程之間的區別: (1)進程更能真實地描述併發,而程序不能。 (2)進程由程序和數據兩部分組成,進程是競爭計算機系統有限資源的基本單位,也是進程處理機調度的基本單位。 (3)程序是靜態的概念;進程是程序在處理機上一次執行的過程,是動