Ngôn ngữ lập trình - Bài 9: Thư viện chuẩn - Nguyễn Xuân Hùng

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 ...

pdf26 trang | Chia sẻ: putihuynh11 | Lượt xem: 545 | Lượt tải: 0download
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:

  • pdfnnlt_7_thuvienchuan_vector_string_7655_1993533.pdf
Tài liệu liên quan