原创 程序員面試----動態規劃法的應用

一、概念       動態規劃過程是:每次決策依賴於當前狀態,又隨即引起狀態的轉移。一個決策序列就是在變化的狀態中產生出來的,所以,這種多階段最優化決策解決問題的過程就稱爲動態規劃。      適用於動態規劃算法的問題一般有以下三個性質:

原创 程序員面試---分治法的應用

       分治法的設計思想是,將一個難以直接解決的大問題,分割成一些規模較小的相同問題,以便各個擊破,分而治之。分治策略是:對於一個規模爲n的問題,若該問題可以容易地解決(比如說規模n較小)則直接解決,否則將其分解爲k個規模較小的子問

原创 關聯容器

關聯容器: 利用鍵,STL的關聯容器能直接保存和提取鍵。 4個關聯容器分別爲:multiset,set,multimap,map。每個關聯容器都按有序的方式維護者它的鍵。對關聯容器的迭代遍歷是根據這個容器的排序順序進行的。

原创 C++泛型算法

本文主要討論C++標準庫中的泛型算法(generic algorithm)。泛型算法是使用容器的強有力的輔助工具。    如果文中有錯誤或遺漏之處,敬請指出,謝謝!    標準庫爲容器類型定義的操作很少,並沒有爲每個容器實現更多的

原创 序列容器(vector)

STL學習之二 序列容器(vector) 一、C++標準模板庫提供了三種序列容器:vector、list、deque。類模板vector和deque都以數組爲基礎,類模板list實現了鏈表的數據結構。 STL中最流行的是類模板vec

原创 序列容器(deque)

STL學習之四——deque序列容器 Deque是“雙端隊列”的簡寫,像vector一樣,deque類的實現提供了讀取和修改它的元素的高效索引訪問(使用下標)。像list一樣,deque類的實現提供了在前端和後端進行高效插入和刪除的操作

原创 序列容器(list)

list序列容器 List序列容器提供了在容器的任何位置執行高效的插入和刪除功能。 類模板list是用雙鏈表實現的。也就是說,鏈表中每個節點都包含指向鏈表中前一個節點的一個指針和指向鏈表中後一個節點的指針。這就使得類模板list支持雙

原创 C++ 類作用域

形參表和函數體處於類作用域中,函數返回類型不一定在類作用域中,如果函數在類定義體之外定義,則用於返回類型的名字在類作用域之外,否則在類作用域內。 class Screen{ public: typedef std::string::siz

原创 標準模板庫STL介紹

1. STL介紹 標準模板庫STL是當今每個從事C++編程的人需要掌握的技術,所有很有必要總結下 本文將介紹STL並探討它的三個主要概念:容器、迭代器、算法。 STL的最大特點就是: 數據結構和算法的分離,非面向對象本質。訪問對

原创 bitset類型

bitset對象的定義和初始化: bitset<n> b; b有n位,每位都爲0 bitset<n> b(u); b是unsigned long型u的一個副本 bitset<n> b(s); b是string對象s中含有位串的副本 bit

原创 指向函數的指針

函數指針是指指向函數而非指向對象的指針。如下: bool (*pf) ( const string&, const string & ); 這條語句將pf聲明爲指向函數的指針,它讓所指向的函數帶有兩個const string& 類型的形參

原创 文件輸入輸出的模式

文件模式: in 打開文件做讀操作 out 打開文件做寫操作 app 在每次寫之前找到文件尾 ate 打開文件後立即將文件定位在文件尾 trunc 打開文件時清空已存在的文件流 binary 以二進制模式進行IO操作 文件模式組合:

原创 C++異常處理

引言 異常,讓一個函數可以在發現自己無法處理的錯誤時拋出一個異常,希望它的調用者可以直接或者間接處理這個問題。而傳統錯誤處理技術,檢查到一個局部無法處理的問題時: 1.終止程序(例如atol,atoi,輸入NULL,會產生段錯誤,導

原创 打印字符串的任意一部分

使用printf()函數打印字符串的任意部分,請看下例: #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char * source

原创 結構的存儲分配(c和指針.P206.)

#include<stdio.h> #include<stddef.h>   int main() {     struct ALIGN          {                    char a;