原创 選擇合適的排序函數()

爲什麼要選擇合適的排序函數?可能你並不關心效率(這裏的效率指的是程序運行時間), 或者說你的數據量很小, 因此你覺得隨便用哪個函數都無關緊要。 其實不

原创 swap_ranges算法(STL)

算法目的交換兩個相等大小的容器內容.template<typename   ForwardIterator1, typename   ForwardI

原创 計算名次與按名次排序問題的算法優化

之前寫過這個小算法,也沒有在意,只是用for循環來一個個的比較。後來才覺得這在數據量很大的情況下會產生很多額外的開銷。因此進行了優化。 計算名次:進行最少次數的比較。 template <class T> void Rank(T a[],

原创 自然數拆分問題

#include<stdio.h>#include<string.h> long res[1024],Total ; //n是需要拆分的數,m是拆分的進度。void fen(long n,long m){    long rest ;  

原创 字符串長度問題!(用new建立)

問題:str未被賦值時,它的長度爲什麼會是11呢,明明new的是一個7的數組阿?賦值後,長度又變正確了! int main(){char *str;int length,n;str = new char[7];    //分配了七個字節,

原创 回溯法示例1

假設需要N個任務分配給N個工人同時去完成,每個人都能承擔這N個任務,但費用不同。下面的程序用回溯法計算總費用最小的一種工作分配方案,在該方案中,爲每個人分配1個不同的任務。        程序中,N個任務從0開始依次編號,N個工人也從0開

原创 地址、指針與動態內存分配

(1)   地址 01.cpp:   C/C++程序運行時,各種數據類型(常量,變量,函數,數組,結構,對象等)在內存中都有地址,知道地址即可取得它們的內容,可用“取地址操作符”&得到地址 例01.cpp:取得常量、變量、數組、函數的(首

原创 淺析cin.getline,cin.get,cin.ignore,cin.clear用法

大概瞭解cin,cin.getline,cin.clear,cin.ignore,cin.get()的用法: cin.getline()方法連續地從用戶終端接受字符,並將字符存入字符型數組message中,直到輸入了(maxchars-

原创 Boost初識

一直覺得STL與Boost都是很神祕並且高深的,前些天學習了下STL,有了初步的瞭解,發現真是個好東西,給我們編程真是帶來了很大的方便。而且十分的高效,真是讓我不捨得不用啊,呵呵。 昨天在網上看了篇關於BOOST的一篇入門文章,收穫不小,

原创 字符串反向輸出以及緩衝區分析

用一般方法實現: #include<iostream>#include <string>using namespace std; string reverseString(string s);void main(){string str

原创 重載、覆蓋與隱藏簡單剖析

成員函數被重載的特徵: 1.在同一個類中 2.函數名字相同. 3.參數不同. 4.virtual關鍵字可有可無. 覆蓋的特徵: 1.分別位於基類與派生類中. 2.函數名字相同. 3.參數相同. 4.基類函數必須有virtual關鍵字 例如

原创 實現鍵盤輸入口令,口令用*號掩蓋

#include <stdio.h>  #include <conio.h>  #include <string.h>  #define BACKSP

原创 有關函數指針數組

 今天看書發現這個比較陌生的概念,於是上網查了查,大概有所瞭解了。 通過下面的例子比較容易理解。 #include   <iostream>     using   namespace   std;         typedef   v

原创 已知前序遍歷和中序遍歷求後序遍歷和層次遍歷

#include <iostream>#include <string>#include <math.h>using namespace std; i

原创 Lex和Yacc從入門到精通(1)--環境配置篇

Abstract 在開發程序的過程中經常會遇到文本解析的問題,例如:解析C語言源程序,編寫 腳本引擎等等,解決這種文本解析的方法有很多,一種方法就是自己手動用C或者 C++直接編寫解析程序,這對於簡單格式的文本信息來說,不會是什麼問題