ThưThư việnviện STL,STL,
TínhTính
đóngđóng
góigói
GV. GV. NguyễnNguyễn Minh Minh HuyHuy
TínhTính
đóngđóng
góigói
1Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
NộiNội dungdung
ThưThư việnviện C++.C++.
ThưThư việnviện STL.STL.
TínhTính đóngđóng góigói
2Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
NộiNội dungdung
ThưThư việnviện C++.C++.
ThưThư việnviện STL.STL.
TínhTính đóngđóng góigói
3Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
ThưThư việnviện C++C++
KháiKhái niệmniệm thưthư việnviện::
ThợThợ xâyxây dựngdựng dùngdùng gìgì đểđể xâyxây nhànhà??
TayTay khôngkhông
CôngCông cụcụ hỗhỗ trợtrợ
ThưThư việnviện lậplập trìnhtrình::
BộBộ
côngcông
cụcụ
hỗhỗ
trợtrợ
CấuCấu trúctrúc::
ThưThư việnviện nhậpnhập xuấtxuất: : iostreamiostream, , fstreamfstream, , iomanipiomanip, ,
ThưThư việnviện STL.STL.
ThưThư việnviện chuẩnchuẩn C: file header C: file header ccxxx.hxxx.h
5Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
NộiNội dungdung
ThưThư việnviện C++.C++.
ThưThư việnviện STL.STL.
TínhTính đóngđóng góigói
6Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
ThưThư việnviện STLSTL
GiớiGiới thiệuthiệu STLSTL––SStandard tandard TTemplate emplate LLibrary:ibrary:
Alexander Alexander StepanovStepanov, 1994., 1994.
PhầnPhần chínhchính yếuyếu củacủa thưthư việnviện chuẩnchuẩn
TậpTập hợphợp class template class template dựngdựng sẵnsẵn
HỗHỗ trợtrợ cấucấu trúctrúc dữdữ liệuliệu tổngtổng quátquát
CấuCấu trúctrúc thưthư việnviện::
NhómNhóm containers.containers.
NhómNhóm iteratorsiterators
NhómNhóm algorithms.algorithms.
NhómNhóm functorsfunctors
7Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Thư viện chuẩn
Thư viện STL
iterators
algorithms functions
containers
ThưThư việnviện STLSTL
LớpLớp string (header <string>):string (header <string>):
;;
coutcout
<< “equal.” << << “equal.” <<
endlendl
;;
elseelse
coutcout << “not equal.” << << “not equal.” << endlendl;;
s2 = s1.substr(4, 4);s2 = s1.substr(4, 4);
coutcout << s2;<< s2;
stringstring s3 = s1 + s2;s3 = s1 + s2;
coutcout << s3 << << s3 << endlendl;;
}}
9Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
ThưThư việnviện STLSTL
LớpLớp vector (header <vector>):vector (header <vector>):
LớpLớp mảngmảng kiểukiểu tổngtổng quátquát T.T.
GiảiGiải quyếtquyết 3 3 vấnvấn đềđề con con trỏtrỏ
CácCác phươngphương thứcthức chínhchính::
Phương
thức
Ý
nghĩa
10Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Phương
thức
Ý
nghĩa
vector<T>() Khởi tạo mảng kiểu T.
size() Lấy kích thước mảng.
thuầnthuần
túytúySửSử
dụngdụng
lớplớp
mảngmảng
độngđộng
thuầnthuần
túytúy
SửSử dụngdụng lớplớp string string vàvà vector vector củacủa thưthư việnviện STL.STL.
12Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
NộiNội dungdung
ThưThư việnviện C++.C++.
ThưThư việnviện STL.STL.
TínhTính đóngđóng góigói
13Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
TínhTính đóngđóng góigói
QuyQuy tắctắc hộphộp đenđen::
ThuộcThuộc tínhtính: : privateprivate đểđể hạnhạn chếchế truytruy xuấtxuất
PhươngPhương thứcthức: : publicpublic đểđể cungcung cấpcấp tínhtính năngnăng
class class HocSinhHocSinh
{{
{{
private:private:
char*char* m_hoTenm_hoTen;;
floatfloat m_diemVanm_diemVan;;
float&float& layDiemToanlayDiemToan();();
};};
TínhTính đóngđóng góigói
LàmLàm saosao vẫnvẫn tuântuân thủthủ quyquy tắctắc hộphộp đenđen??
ĐưaĐưa xửxử lýlý chocho đốiđối tượngtượng thựcthực hiệnhiện
class class HocSinhHocSinh
{{
private:private:
char*char*
m_hoTenm_hoTen
;;
char*char*
m_hoTenm_hoTen
;;
floatfloat m_diemVanm_diemVan;;
floatfloat m_diemToanm_diemToan;;
public:public:
float float tinhDTBtinhDTB();();
intint xepLoaixepLoai();();
};};
16Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
TínhTính đóngđóng góigói
Dr. Guru Dr. Guru khuyênkhuyên: : quyquy tắctắc “Tell, Don’t Ask”“Tell, Don’t Ask”
ThôngThông tin tin đốiđối tượngtượng
KhôngKhông thểthể truytruy xuấtxuất từtừ bênbên ngoàingoài
ĐốiĐối tượngtượng nắmnắm giữgiữ thôngthông tintin
ChịuChịu tráchtrách nhiệmnhiệm xửxử lýlý thôngthông tin.tin.
““ĐừngĐừng hỏihỏi tôitôi thôngthông tin tin đểđể thựcthực hiệnhiện côngcông việcviệc””
class class BangDiemBangDiem
{{
private:private:
vector<vector<HocSinhHocSinh> > m_danhSachm_danhSach;;
};};
TómTóm tắttắt
ThưThư việnviện C++:C++:
BộBộ côngcông cụcụ dựngdựng sẵnsẵn hỗhỗ trợtrợ lậplập trìnhtrình C++.C++.
CácCác thưthư việnviện phổphổ biếnbiến::
ThưThư việnviện chuẩnchuẩn::
ThưThư việnviện boost.boost.
ThưThư
việnviện
MFC.MFC.
ThưThư
việnviện
MFC.MFC.
ThưThư việnviện STL:STL:
PhầnPhần chínhchính yếuyếu củacủa thưthư việnviện chuẩnchuẩn
CácCác lớplớp dựngdựng sẵnsẵn: string, vector.: string, vector.
TínhTính đóngđóng góigói::
Tell, Don’t Ask.Tell, Don’t Ask.
19Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
BàiBài tậptập
BàiBài tậptập 6.1:6.1:
VớiVới mỗimỗi thưthư việnviện bênbên dướidưới, , hãyhãy liệtliệt kêkê têntên vàvà chocho biếtbiết tínhtính năngnăng củacủa ítít
xuấtxuất
hiệnhiện
nhiềunhiều
nhấtnhất
trongtrong
đoạnđoạn
vănvăn
SắpSắp xếpxếp tăngtăng dầndần ((thứthứ tựtự từtừ điểnđiển) ) cáccác từtừ trongtrong mỗimỗi câucâu
GhiGhi đoạnđoạn vănvăn đãđã chỉnhchỉnh sửasửa vàovào file file vănvăn bảnbản
21Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
BàiBài tậptập
BàiBài tậptập 6.3:6.3:
XâyXây dựngdựng lớplớp đađa thứcthức cócó nhữngnhững phươngphương thứcthức sausau::
((NhómNhóm tạotạo hủyhủy))
KhởiKhởi tạotạo mặcmặc địnhđịnh đađa thứcthức = 0.= 0.
KhởiKhởi tạotạo vớivới bậcbậc vàvà mảngmảng hệhệ sốsố chocho trướctrước
KhởiKhởi
tạotạo
từtừ
mộtmột
đốiđối
tượngtượng
đađa
thứcthức
kháckhác
KhởiKhởi
TínhTính
giágiá
trịtrị
, ,
đạođạo
hàmhàm
, ,
nguyênnguyên
hàmhàm
((NhómNhóm toántoán tửtử))
ToánToán tửtử sốsố họchọc: +, : +, , *, /, =., *, /, =.
ToánToán tửtử so so sánhsánh: >, <, ==, >=, <=, !=: >, <, ==, >=, <=, !=
ToánToán tửtử đạođạo hàmhàm (!), (!), nguyênnguyên hàmhàm (~).(~).
ToánToán tửtử nhậpnhập xuấtxuất: >>, <<.: >>, <<.
23Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
BàiBài tậptập
BàiBài tậptập 6.4:6.4:
XâyXây dựngdựng cáccác lớplớp cầncần thiếtthiết đểđể thựcthực hiệnhiện cáccác thaothao táctác trêntrên tam tam giácgiác::
TínhTính chuchu vi vi vàvà diệndiện tíchtích
TìmTìm trọngtrọng tâmtâm ((giaogiao 3 3 đườngđường trungtrung tuyếntuyến).).
TìmTìm đườngđường trungtrung trựctrực củacủa mộtmột cạnhcạnh ((vuôngvuông gócgóc tạitại trungtrung điểmđiểm).).
TìmTìm
tâmtâm
đườngđường
tròntròn
ngoạingoại