Mảng, xâu & cấu trúc dữ liệu cơ bản

5. Làm quen STL: vector, pair, sort

STL (thư viện chuẩn) cho ta các công cụ viết sẵn. Ba thứ nền tảng:

vector — mảng co giãn được

vector như mảng nhưng tự thay đổi kích thước; thêm phần tử bằng push_back:

vector.cpp
#include <vector>
vector<int> v;
v.push_back(5);      // v = [5]
v.push_back(2);      // v = [5, 2]
cout << v.size();    // 2
cout << v[0];        // 5
pair — ghép hai giá trị

pair gói hai giá trị thành một, tiện khi cần lưu cặp (ví dụ điểm và tên):

pair.cpp
#include <utility>
pair<int,int> p = {3, 7};
cout << p.first << " " << p.second;   // 3 7
sort — sắp xếp sẵn có

sort sắp xếp một mảng/vector tăng dần chỉ với một dòng (ta học sâu hơn ở Phase 3):

sort.cpp
#include <algorithm>
sort(a, a + n);          // sap xep a[0..n-1] tang dan
sort(v.begin(), v.end()); // sap xep vector tang dan
stack (ngăn xếp — vào sau ra trước) và queue (hàng đợi — vào trước ra trước) sẽ gặp lại ở các phase sau; tạm thời chỉ cần biết tên.

6. Bài tập điển hình Phase 1

  1. Đọc dãy n số, in ra max, min, tổng, trung bình.
  2. Đọc ma trận n×m, tính tổng mỗi hàng và mỗi cột.
  3. Đọc một xâu, đếm số nguyên âm và kiểm tra có đối xứng không.
  4. Đọc dãy số trong khoảng 0..1000, in ra giá trị xuất hiện nhiều nhất.
  5. Đọc một câu, đếm số từ (các từ cách nhau bởi dấu cách).
✦