Thêm phần tử
Thuộc phần Logic và luồng chương trình trong hành trình C++ của Coddy. Bài học 11 trên 56.
Bây giờ bạn đã biết cách tạo vector, hãy cùng tìm hiểu cách thêm phần tử vào vector sau khi tạo. Phương thức push_back() là công cụ chính giúp bạn mở rộng vector bằng cách thêm phần tử mới vào cuối.
Phương thức push_back() nhận một đối số duy nhất, là giá trị bạn muốn thêm, rồi thêm giá trị đó vào cuối vector:
std::vector<int> numbers;
numbers.push_back(10);
numbers.push_back(20);
numbers.push_back(30);Trong ví dụ này, chúng ta bắt đầu với một vector rỗng và dùng push_back() để thêm ba số nguyên. Sau các thao tác này, vector của chúng ta chứa các phần tử [10, 20, 30] theo thứ tự đó.
Điểm hay của push_back() là nó tự động xử lý toàn bộ việc quản lý bộ nhớ. Khi bạn thêm phần tử và vector hết chỗ, nó tự động cấp phát thêm bộ nhớ rồi sao chép các phần tử hiện có sang vị trí mới. Nhờ vậy, vector rất tiện lợi khi bạn cần tạo tập hợp dữ liệu mà chưa biết trước kích thước cuối cùng.
Thử thách
DễTạo một chương trình minh họa cách thêm phần tử vào vector bằng phương thức (method) push_back(). Bạn sẽ bắt đầu với một vector rỗng rồi thêm các số theo một trình tự cụ thể để tạo vector một cách linh hoạt.
Chương trình sẽ nhận các đầu vào sau:
- Một số nguyên
ncho biết cần thêm bao nhiêu số vào vector - Sau đó là
nsố nguyên cần lần lượt thêm vào vector
Chương trình của bạn cần:
- Tạo một
std::vector<int>rỗng có tênnumbers - Dùng vòng lặp để đọc từng số trong
nsố đầu vào - Với mỗi số, dùng
push_back()để thêm số đó vào cuối vector - Sau khi thêm mỗi số, in ra kích thước hiện tại của vector và số vừa được thêm
- Cuối cùng, in tất cả phần tử trong vector trên một dòng, cách nhau bằng dấu cách
Dùng chính xác định dạng đầu ra sau:
Added [number], size is now [current size]
Added [number], size is now [current size]
...
Final vector: [num1] [num2] [num3] ...Dùng phương thức .size() để lấy số phần tử hiện tại trong vector sau mỗi lần thêm. Với đầu ra cuối cùng, dùng toán tử ngoặc vuông [] để truy cập từng phần tử theo chỉ số.
Tự làm thử
#include <iostream>
#include <vector>
using namespace std;
int main() {
// Đọc số phần tử cần thêm
int n;
cin >> n;
// Tạo một vector rỗng
vector<int> numbers;
// TODO: Viết code của bạn ở đây
// Đọc n số và thêm vào vector bằng push_back()
// In ra đầu ra theo yêu cầu sau mỗi lần thêm
// In ra vector cuối cùng
cout << "Final vector: ";
// TODO: In ra tất cả phần tử, cách nhau bằng dấu cách
return 0;
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng chương trình
1Con trỏ và bộ nhớ
Con trỏ là gì?Toán tử lấy địa chỉToán tử giải tham chiếuCon trỏ nullCon trỏ và mảngBộ nhớ động với newGiải phóng bộ nhớ với deleteÔn tập: luyện tập về con trỏ2Vector (mảng động)
Giới thiệu std::vectorTạo vectorThêm phần tửTruy cập phần tửKích thước vectorDuyệt bằng vòng lặp forVòng lặp for dựa trên phạm viXóa phần tửÔn tập: các thao tác với vector5Dự án: Công cụ quản lý hàng tồn kho
Thiết lập dự ánThêm và cập nhật mặt hàng3Dự án: Công cụ danh sách công việc
Tổng quan dự ánThêm công việc6Tập hợp (các phần tử duy nhất)
Giới thiệu std::setTạo tập hợp và thêm phần tửKiểm tra phần tửXóa phần tửDuyệt qua tập hợpÔn tập: các số duy nhấtTự luyện tập: Trình biên dịch C++ online