Dẫn nhập
Ở bài học kinh nghiệm trước, bản thân đã share cho chúng ta về khái niệm và cách thực hiện MẢNG MỘT CHIỀU vào C++ (Arrays).
Bạn đang xem: Thêm phần tử vào mảng c++
Hôm nay, mình sẽ reviews cho các bạn về Các thao tác làm việc trên mảng một chiều trong C++.
Nội dung
Để phát âm hiểu bài bác này giỏi nhất chúng ta nên có kỹ năng cơ phiên bản về:
Trong bài bác ta vẫn cùng tò mò các vấn đề:
Truyền mảng vào hàm (passing arrays khổng lồ functions)Nhập và xuất mảng 1 chiềuSao chép mảng 1 chiềuTìm kiếm thành phần trong mảngSắp xếp mảng 1 chiềuThêm với xóa một phần tử vào mảngTruyền mảng vào hàm (passing arrays to lớn functions)
Trong bài TRUYỀN GIÁ TRỊ mang lại HÀM(Passing Arguments by Value), chúng ta đã biết lúc một biến truyền vào hàm theo cách thức truyền giá trị, C++ đang sao chép giá trị của đối số vào tham số của hàm. Do tham số hàm là 1 bản sao, nên việc thay đổi quý giá tham số ko làm biến hóa giá trị đối số ban đầu.
Đối với kiểu dữ liệu mảng, việc xào luộc 1 số lượng lớn các phần tử sẽ tạo tốn không ít vùng nhớ với giảm hiệu suất. Nên lúc truyền mảng vào hàm, tham số của hàm đó là địa chỉ vùng ghi nhớ của bộ phận đầu tiên vào mảng. Vày vậy, mảng có thể đổi khác nội dung sau thời điểm thực hiện tại hàm
Lưu ý khi truyền mảng vào hàm:
Tham số vẻ bên ngoài mảng trong khai báo hàm giống như khai báo đổi thay mảng.void NhapMang(int a<100>);Tham số phong cách mảng truyền cho hàm đó là địa chỉ của thành phần đầu tiên của mảng.Có thể bỏ con số phần tử hoặc sử dụng con trỏ.Mảng có thể đổi khác nội dung sau khoản thời gian thực hiện nay hàm.void NhapMang(int a<>);void NhapMang(int *a);Số lượng bộ phận thực sự truyền qua thay đổi khác.void NhapMang(int a<100>, int n);void NhapMang(int a<>, int n);void NhapMang(int *a, int n);Tất cả các ví dụ dưới sẽ sử dụng phương thức truyền mảng vào hàm.
Nhập với xuất mảng 1 chiều
Bên bên dưới là lấy một ví dụ về nhập, xuất dữ liệu cho mảng 1 chiều:
#include #include // for srand() và rand()#include // for time()using namespace std;// tư tưởng số phần tử mảng#define MAX 1000// khai báo prototypevoid nhapMang(int arr<>, int &n);void xuatMang(int arr<>, int n);int main()int myArray

Sao chép mảng 1 chiều
Ý tưởng: Để tạo ra một bản sao xuất phát điểm từ 1 mảng, bạn cần khai báo thêm một mảng khác bao gồm cùng kích cỡ với mảng ban đầu.
Chương trình:
#include #include // for srand() and rand()#include // for time()#include using namespace std;// quan niệm số phần tử mảng#define MAX 1000// khai báo prototypevoid nhapMang(int arr<>, int &n);void xuatMang(int arr<>, int n);void saoChepMangMotChieu(int arrDest<>, int arrSource<>, int n);int main()int myArray

Tìm kiếm phần tử trong mảng
Yêu cầu: Tìm xem thành phần x gồm nằm trong mảng myArray size n hay không? Nếu bao gồm thì nó nằm tại vị trí vị trí đầu tiên nào?
Ý tưởng: Xét từng phần của mảng myArray. Nếu phần tử đang xét bằng x thì trả về địa chỉ đó. Nếu không kiếm được thì trả về -1.
Chương trình:
#include #include // for srand() and rand()#include // for time()#include using namespace std;// tư tưởng số phần tử mảng#define MAX 1000// khai báo prototypevoid nhapMang(int arr<>, int &n);void xuatMang(int arr<>, int n);int timKiemPhanTuDauTien(int arr<>, int n, int x);int main()int myArray

Output 2:

Sắp xếp mảng 1 chiều
Yêu cầu: mang đến trước mảng myArray kích thước n. Hãy thu xếp mảng a đó thế nào cho các bộ phận có quý hiếm tăng dần.
Ý tưởng: thực hiện 2 biến hóa i cùng j để so sánh tất cả cặp thành phần với nhau với hoán vị các cặp nghịch vắt (sai thiết bị tự).
Chương trình:
#include #include // for srand() và rand()#include // for time()#include using namespace std;// có mang số phần tử mảng#define MAX 1000// khai báo prototypevoid nhapMang(int arr<>, int &n);void xuatMang(int arr<>, int n);void hoanVi(int &a, int &b);void sapXepTang(int arr<>, int n);int main()int myArray

Thêm cùng xóa một trong những phần tử trong mảng
Thêm 1 phần tử vào mảng
Yêu cầu: Thêm phần tử x vào mảng myArray size n tại vị trí idx.
Ý tưởng:
“Đẩy” những phần tử ban đầu tại địa chỉ idx sang đề xuất 1 vị trí.Đưa x vào địa chỉ idx vào mảng.Tăng n lên 1 đơn vị.Chương trình:
#include #include // for srand() and rand()#include // for time()#include using namespace std;// khái niệm số phần tử mảng#define MAX 1000// khai báo prototypevoid nhapMang(int arr<>, int &n);void xuatMang(int arr<>, int n);void themMotPhanTuVaoMang(int a<>, int &n, int idx, int x);int main()int myArray

Xóa 1 phần tử trong mảng
Yêu cầu: Xóa một phần tử vào mảng a kích cỡ n tại vị trí vt
Ý tưởng:
“Kéo” các thành phần bên đề xuất vị trí idx sang trái 1 vị trí.Giảm n xuống 1 1-1 vị.Chương trình:
#include #include // for srand() and rand()#include // for time()#include using namespace std;// tư tưởng số thành phần mảng#define MAX 1000// khai báo prototypevoid nhapMang(int arr<>, int &n);void xuatMang(int arr<>, int n);void xoaMotPhanTuTrongMang(int a<>, int &n, int idx);int main(){int myArray

Kết luận
Qua bài học kinh nghiệm này, các bạn đã biết được Các thao tác làm việc trên Mảng một chiều vào C++. Còn rất nhiều thao tác khác trên mảng 1 chiều, vào phạm vi bài học kinh nghiệm không thể nói hết được, các bạn hãy từ bỏ mình khám phá và bình luận bên dưới để share cho mọi người nhé.
Trong bài tiếp theo, mình sẽ giới thiệu cho các bạn về MẢNG hai CHIỀU (Multidimensional arrays) trong C++.
Cảm ơn chúng ta đã theo dõi bài viết. Hãy nhằm lại phản hồi hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – thử thách – không phải lo ngại khó”.
Xem thêm: Trùng Giày Di Chuyển Như Thế Nào ? Trùng Đế Giày
Thảo luận
Nếu các bạn có ngẫu nhiên khó khăn hay vướng mắc gì về khóa học, đừng e dè đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện choigame.me.com để nhận ra sự cung ứng từ cộng đồng.