Tài liệu Ngôn ngữ lập trình - Bài 9: Thư viện chuẩn - Nguyễn Xuân Hùng: Giảng viên: Nguyễn Xuân Hùng
Mobile: 0908 386 366
Email: nguyenxuanhung@wru.vn
Bài 9. Thư viện chuẩn
(Standard Template Library)
NGÔN NGỮ LẬP TRÌNH
Nguyễn Xuân Hùng – Khoa CNTT – Trường Đại học Thủy Lợi
NỘI DUNG
1. Cơ bản về Vector
2. Cơ bản về String
12/18/20142 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Cơ bản về vector
12/18/20143 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Mục đích: khi sử dụng với tập các phần tử có cùng
kiểu
Khái niệm: là một kiểu dữ liệu giống mảng nhưng nó
có thể phình to hoặc thu nhỏ kích thước khi chương
trình đang chạy.
Nhược điểm của mảng:
Kích thước khai báo là cố định
Không thuận tiện trong việc truyền tham số kiểu mảng
trong hàm và trả về kiểu mảng.
Sử dụng vượt chỉ số mảng, C++ không thông báo lỗi
dẫn tới tác động dây truyền.
Vector là một container cung cấp khả năng sử dụng
mảng mềm dẻo, có kiểm soát miền khi cần thiết với
kích thước tùy ý.
1. Cơ bản về vector
12/18/20144 Nguyễn Xuân Hùng – Khoa CNTT ...
26 trang |
Chia sẻ: putihuynh11 | Lượt xem: 555 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Ngôn ngữ lập trình - Bài 9: Thư viện chuẩn - Nguyễn Xuân Hùng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Giảng viên: Nguyễn Xuân Hùng
Mobile: 0908 386 366
Email: nguyenxuanhung@wru.vn
Bài 9. Thư viện chuẩn
(Standard Template Library)
NGÔN NGỮ LẬP TRÌNH
Nguyễn Xuân Hùng – Khoa CNTT – Trường Đại học Thủy Lợi
NỘI DUNG
1. Cơ bản về Vector
2. Cơ bản về String
12/18/20142 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Cơ bản về vector
12/18/20143 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Mục đích: khi sử dụng với tập các phần tử có cùng
kiểu
Khái niệm: là một kiểu dữ liệu giống mảng nhưng nó
có thể phình to hoặc thu nhỏ kích thước khi chương
trình đang chạy.
Nhược điểm của mảng:
Kích thước khai báo là cố định
Không thuận tiện trong việc truyền tham số kiểu mảng
trong hàm và trả về kiểu mảng.
Sử dụng vượt chỉ số mảng, C++ không thông báo lỗi
dẫn tới tác động dây truyền.
Vector là một container cung cấp khả năng sử dụng
mảng mềm dẻo, có kiểm soát miền khi cần thiết với
kích thước tùy ý.
1. Cơ bản về vector
12/18/20144 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Khai báo:
Khai báo thư viện:
Khai báo sử dụng:
vector a; Khai báo một vector a có kiểu int
vector a(10); Khai báo một vector a có 10 phần tử
kiểu int
vector a(10, 2); khai báo một vector a có 10 phần tử
kiểu int được khởi tạo bằng 2.
1. Cơ bản về vector
12/18/20145 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Các phương thức hỗ trợ bởi lớp vector
Phương thức Ngữ nghĩa
v.assign(n, e)
v[i] hoặc v.at(i)
v.clear()
v.pop_back()
v.push_back(e)
v.resize(newsSize)
Thay thế nội dung của v bằng n bản sao của e
Tham chiếu đến phần tử thứ i của vector v
Làm rỗng vector v
Xóa phần tử cuối cùng của vector v
Ghép thêm phần tử e vào cuối vector v
Đổi cỡ của vector v thành newSize
1. Cơ bản về vector
12/18/20146 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Ví dụ:
1. Cơ bản về vector
12/18/20147 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Thay đổi kích thước của vector: dùng hàm
resize();
Ví dụ:
1. Cơ bản về vector
12/18/20148 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Thêm phần tử và lấy phần tử ra khỏi vector: dùng
push_bach(item) và pop_back();
Ví dụ:
Xóa tại vị trí bất kỳ, xóa trắng: dùng phương thức
earse(i) và clear()
1. Cơ bản về vector
12/18/20149 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Phương thức chèn phần tử: dùng insert() như
sau:
1. Cơ bản về vector
12/18/201410 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Phương thức tham chiếu tới phần tử đầu vào
cuối: front(), back();
1. Cơ bản về vector
12/18/201411 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Phương thức kiểm tra xem vector rỗng hay
không? sử dụng: empty();
Phương thức kiểm tra số lượng tối đa mà vector
được cấp phát: capacity();
1. Cơ bản về vector
12/18/201412 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Phương thức cấp phát vùng nhớ cho vector:
reserve() hạn chế vector tự cấp phát vùng nhớ
không cần thiết.
Hoán đổi 2 vector với nhau: v1.swap(v2) đổi
giá trị của v1 cho v2 và ngược lại.
1. Cơ bản về vector
12/18/201413 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Mảng 2 chiều với vector:
1. Cơ bản về vector
12/18/201414 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Sử dụng iterator: là bộ lặp hay biến lặp cùng với
các container (thùng chứa) như: mảng, list,
vector
Một số phương thức liên quan tới container
1. Cơ bản về vector
12/18/201415 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Truy cập tới các phần tử của một container bằng
sử dụng một iterator
Ví dụ:
1. Cơ bản về vector
12/18/201416 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Kiểu mảng để biểu diễn xâu:
Một biến C-string chỉ là một mảng các ký tự.
Khai báo một biến C-string
Ví dụ:
char myCstring[11]; biến myCstring có thể chứa một C-
string có ít hơn hoặc bằng 10 ký tự. Ký tự thứ 11 là ký tự
kết thúc một C-string.
Khởi tạo một C-string:
char myCstring[11] = “Hi there.”;
char shortString[ ] = “abc”;
2. Cơ bản về C-string
12/18/201417 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Thư viên C-string: cung cấp các hàm được xây
dựng sẵn. Khai báo thư viên #include
2. Cơ bản về C-string
12/18/201418 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Hàm Mô tả
strcpy(target, source) Sao chép giá trị source vào target
strcpy(target, source, limit) Sao chép limit giá trị source vào target.
strcat(target, source) Nối giá trị source vào đuôi target
strncat(target, source, limit) Nối limit giá trị vào đuôi target
strlen(source) Trả về chiều dài của source, không tính ‘\0’
strcmp(s1, s2) Trả về 0 nếu s1 giống s2, nhỏ hơn 0 nếu s1
s2
strncmp(s1, s2, limit) Tương tự strcmp nhưng hạn chế kí tự so
sánh
Xuất nhập với C-string: sử dụng getline()
Ví dụ:
Các hàm thành viên:
putback(): nhận một đối số kiểu char, nó sẽ đưa giá
trị của đối số ngược trả lại luồng nhập.
peek(): trả về kí tự được đọc tiếp theo bởi cin,
nhưng không sử dụng ký tự đó.
ignore(): bỏ qua việc nhập cho đến một ký tự được
chỉ rõ.
Ví dụ: cin.ignore(1000,’\n’); nếu ký tự ‘\n’ không xuất hiện
thì 1000 ký tự bị bỏ qua.
2. Cơ bản về C-string
12/18/201419 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Một số hàm với ký tự:
2. Cơ bản về C-string
12/18/201420 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Hàm Mô tả
toupper(c) trả về ký tự hoa của c
tolower(c) trả về ký tự thường của c
isupper(c) trả về true nếu c là ký tự hoa
islower(c) trả về true nếu c là ký tự thường
isalpha(c) trả về true nếu c là chữ cái
isdigit(c) trả về true nếu c là số
isspace(c) trả về true nếu c là dấu cách
isalnum(c) trả về true nếu c là chữ cái hoặc số
ispunct(c) trả về true nếu c là một ký tự in được khác ký tự
trắng, chữ số hoặc chữ cái
isgraph(c) trả về true nếu c là một ký tự in được mà khác ký
tự trắng
isctrl(c) trả về true nếu c là một ký tự điều khiển
Lớp string được định nghĩa sẵn trong thư viện
, và đặt trong không gian tên std;
Khai báo:
string s1, s2;
s1 = “hello world”;
string s3(“hello”);
Xuất nhập với string: sử dụng getline(cin, s1) để
đọc một chuỗi vào biến s1.
Truy cập từng phần tử:
cout<<s1[0]; h
cout<<s1[6]; w
3. Lớp chuẩn string
12/18/201421 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Ví dụ khai báo và truy cập xâu:
3. Lớp chuẩn string
12/18/201422 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Ví dụ đọc xâu từ bàn phím:
Chèn một xâu con vào xâu:
3. Lớp chuẩn string
12/18/201423 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Một số hàm trong xâu:
str.substr(pos, len): trả về một xâu con trong xâu
str, từ vị trí pos và có độ dài là len
str.empty(): trả về true nếu str là rỗng
str.insert(pos, str2): chèn str2 vào xâu str từ vị trí
pos.
str.remove(pos, len): xóa một xâu con có kích
thức len từ vị trí pos
str.find(str1): trả về vị trí xuất hiện đầu tiên của
str1 trong str
3. Lớp chuẩn string
12/18/201424 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Một số hàm trong xâu:
str.find(str1, pos): trả về vị trí tìm thấy trong str từ
vị trí pos
str.find_first_of(str1, pos): trả về ví trí xuất hiện
đầu tiên của str1 trong str, bắt đầu từ pos
trả về vị trí đầu tiên của str mà
str.find_first_not_of(str1, pos): không trùng với
bất kỳ kí tự nào trong str1
str.erase(pos, n): xóa n ky tự từ vị trí pos của xâu
str
str.rfind(str1): trả về trị trí xuất hiện xâu con str1
trong xâu str theo chiều ngược lại.
str.replace(pos, n, str): thay thế n ký tự từ vị trí
pos trong xâu str bằng str1.
3. Lớp chuẩn string
12/18/201425 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
EOF!
12/18/2014Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi26
Các file đính kèm theo tài liệu này:
- nnlt_7_thuvienchuan_vector_string_7655_1993533.pdf