1. 泛型編程GP與面向?qū)ο驩OP
GP(Generic Programming)就是使用模板template為主要工具來(lái)編寫(xiě)程序。
OOP(Object-Oriented Programming)面向?qū)ο缶幊叹褪鞘褂美^承,利用虛函數(shù)實(shí)現(xiàn)的多態(tài)技術(shù)編寫(xiě)程序。
GP與OOP最大的區(qū)別就是:
GP試圖將datas和methods分開(kāi)
OOP試圖將datas和methods關(guān)聯(lián)起來(lái)
2. C++ Standard Library vs. Standard Template Library
C++ Standard Library——C++標(biāo)準(zhǔn)庫(kù)(包括STL,范圍比STL大)
STL(Standard Template Library)——C++標(biāo)準(zhǔn)模板庫(kù)(主要包括六大部件)
STL是泛型編程最成功的作品。
STL六大部件:
容器(Containers)
分配器(Allocators)
算法(Algorithms)
迭代器(Iterators)
適配器(Adapters)
仿函數(shù)(Functors)


3. 我們的目標(biāo):
level 0:使用C++標(biāo)準(zhǔn)庫(kù)
level 1:了解C++標(biāo)準(zhǔn)庫(kù)(胸中自有丘壑)
level 2:良好使用C++標(biāo)準(zhǔn)庫(kù)
level 3:擴(kuò)充C++標(biāo)準(zhǔn)庫(kù)
4. C++頭文件
STL主要以頭文件的形式存在
使用C++的頭文件的方式:(不帶.h后綴名)
#include <vector>
使用C的頭文件的方式:(可以帶也可以不帶,如果不帶要在前面加“c”)
#include <cstdio>
或者
#include <stdio.h>
命名空間std(standard的縮寫(xiě))
新式頭文件內(nèi)的組件都封裝在叫做std的命名空間中,使用庫(kù)函數(shù)或者組件式要顯示聲明使用std名字空間或者std空間中的某些組件:
using namespace std; //一次開(kāi)放所有 (推薦)
或者
using std::cout; //一個(gè)一個(gè)的打開(kāi)
舊式的頭文件不包含在std命名空間內(nèi)
5. C++標(biāo)準(zhǔn)庫(kù)的版本
Visual C++系列
Dev C++ 5.11(使用的是GNU4.9.2版本)

6. 時(shí)間復(fù)雜度
7. “前閉后開(kāi)”區(qū)間
【a, b】前閉后閉區(qū)間 a <= x <= b
【a, b)前閉后開(kāi)區(qū)間 a <= x < b
(a, b)前開(kāi)后開(kāi)區(qū)間 a < x < b
標(biāo)準(zhǔn)庫(kù)規(guī)定,STL所有容器的頭尾指針滿足前閉后開(kāi)區(qū)間。即:
c.begin() —— 指向第一個(gè)元素
c.end() ——指向最后一個(gè)元素的下一個(gè)位置