Sự khác biệt giữa mảng một chiều (1D) và hai chiều (2D)

Sự khác biệt giữa mảng một chiều (1D) và hai chiều (2D)

Mảng là một tập hợp những biến có kiểu dữ liệu tương tự và được gọi bằng một tên chung. Một phần tử cụ thể trong một mảng được truy cập bởi một chỉ mục cụ thể của mảng đó. Mảng trong Java hoạt động khác so với C ++. Chủ đề chính của cuộc thảo luận của chúng tôi là sự khác biệt giữa mảng Một chiều và Hai chiều. Mảng một chiều là danh sách những biến có cùng kiểu dữ liệu, trong khi mảng hai chiều là ‘mảng mảng’ có kiểu dữ liệu tương tự nhau. C ++ không có kiểm tra ràng buộc trên những mảng trong khi đó, Java có kiểm tra ràng buộc chặt chẽ trên những mảng.Mảng là một tập hợp những biến có kiểu tài liệu tương tự như và được gọi bằng một tên chung. Một thành phần đơn cử trong một mảng được truy vấn bởi một chỉ mục đơn cử của mảng đó. Mảng trong Java hoạt động giải trí khác so với C + +. Chủ đề chính của cuộc bàn luận của chúng tôi là sự độc lạ giữa mảng Một chiều và Hai chiều. Mảng một chiều là list những biến có cùng kiểu tài liệu, trong khi mảng hai chiều là ‘ mảng mảng ‘ có kiểu tài liệu tương tự như nhau. C + + không có kiểm tra ràng buộc trên những mảng trong khi đó, Java có kiểm tra ràng buộc ngặt nghèo trên những mảng .Vì vậy, hãy mở màn với sự độc lạ giữa mảng Một chiều và Hai chiều cùng với biểu đồ so sánh .

Biểu đồ so sánh:

Bạn đang đọc: Sự khác biệt giữa mảng một chiều (1D) và hai chiều (2D)

Cơ sở để so sánhMột chiềuHai chiềuCăn bản Lưu trữ danh sách những yếu tố của loại dữ liệu tương tự.Lưu trữ ‘danh sách những danh sách’ hoặc ‘mảng của mảng’ hoặc ‘mảng của mảng một chiều’.Tờ khai/ * khai báo trong C ++ gõ biến_name [kích thước]; * / / * khai báo bằng Java gõ biến_name []; biến_name = loại mới [kích thước]; * // * khai báo trong C ++ gõ biến_name [size1] [size2]; * / / * khai báo bằng Java gõ biến_name = new int [size1] [size2]; * /Tuyên bố thay thế/ * Trong Java int [] a = new int ; * // * Trong Java int [] [] a = new int [20]; * /Tổng kích thước tính bằng byteTổng số byte = sizeof (kiểu dữ liệu của biến mảng) * kích thước của mảng.Tổng số byte = sizeof (kiểu dữ liệu của biến mảng) * kích thước của chỉ mục thứ nhất * kích thước của chỉ mục thứ hai.Nhận thông sốNó có thể được nhận trong một con trỏ, mảng có kích thước hoặc một mảng chưa được thống nhất.Tham số nhận nó phải xác định kích thước ngoài cùng bên phải của một mảng.Kích thướcMột chiều.Hai chiều.

Định nghĩa Mảng một chiều (mảng 1 chiều)

Mảng một chiều hoặc một chiều được coi là list những biến của những kiểu tài liệu tựa như, và mỗi biến hoàn toàn có thể được truy vấn riêng không liên quan gì đến nhau bằng phương pháp chỉ định chỉ mục của nó trong dấu ngoặc vuông đứng trước tên của mảng đó . Trong C ++, khai báo một biến mảng có kích thước là đủ để phân bổ không gian cho chúng trong bộ nhớ. Trong Java, điều này đạt được theo hai bước. Đầu tiên, bạn phải khai báo một biến của loại mong muốn. Thứ hai, bạn phải phân bổ bộ nhớ để giữ mảng bằng phương pháp dùng ‘new’ và gán nó cho biến mảng được khai báo. Do đó, những mảng được phân bổ động trong Java.Trong C + +, khai báo một biến mảng có kích cỡ là đủ để phân chia khoảng trống cho chúng trong bộ nhớ. Trong Java, điều này đạt được theo hai bước. Đầu tiên, bạn phải khai báo một biến của loại mong ước. Thứ hai, bạn phải phân chia bộ nhớ để giữ mảng bằng phương pháp dùng ‘ new ‘ và gán nó cho biến mảng được khai báo. Do đó, những mảng được phân chia động trong Java .Hãy luận bàn về toàn cảnh C + +

// khai báo trong kiểu C ++ biến_name [size];

Ở đây kiểu khai báo kiểu tài liệu của biến mảng và kích cỡ xác lập số lượng thành phần mà mảng sẽ giữ .Ví dụ : nếu tất cả chúng ta muốn khai báo một mảng sẽ chứa số dư của mỗi tháng trong năm .

// ví dụ int tháng_balance [12];

Tháng _balance là biến mảng sẽ chứa 12 số nguyên, sẽ đại diện thay mặt cho số dư của mỗi tháng. Bây giờ, nếu tất cả chúng ta muốn truy vấn số dư của tháng ‘ tháng 4, tất cả chúng ta chỉ cần đề cập đến tên biến theo dấu ngoặc vuông chứa giá trị chỉ mục cho tháng 4, tức là ‘ tháng_balance ‘. Nhưng vì ‘ Tháng Tư ‘ là tháng thứ tư trong năm nhưng chúng tôi đã đề cập ‘ ‘ vì tổng thể những mảng có 0 là chỉ số của thành phần tiên phong của chúng .Trong Java, điều này hoàn toàn có thể được thực thi như là

// khai báo trong kiểu Java biến_name []; biến_name = loại mới [kích thước];

Ở đây, ban đầu chúng tôi đã khai báo một biến mảng với kiểu của nó và sau đó chúng tôi đã phân bổ bộ nhớ cho nó bằng phương pháp dùng ‘new’ và gán ‘new’ cho biến mảng được khai báo. Hãy lấy ví dụ trên nếu chúng ta muốn khai báo một mảng sẽ chứa số dư trong mỗi tháng trong năm.

// ví dụ int tháng_balance []; tháng_balance = new int [12];

Ở đây, ‘ mới ‘ phân chia bộ nhớ cho biến mảng tháng tháng_balance, thế cho nên giờ đây, mont_balance sẽ giữ bộ nhớ cho 12 giá trị nguyên .

Mảng có thể được khởi tạo khi chúng được khai báo. Bộ khởi tạo mảng là danh sách những giá trị được phân tách bằng dấu phẩy được bao quanh bởi dấu ngoặc nhọn. //thí dụ

int tháng_balance = {100, 500, 200, 750, 850, 250, 630, 248, 790, 360, 450.180};

Định nghĩa Mảng hai chiều (mảng 2 chiều)

Cả C + + và Java đều tương hỗ mảng đa chiều. Một trong những hình thức đơn thuần nhất của mảng nhiều chiều là mảng hai chiều hoặc mảng 2 chiều. Mảng hai chiều hoàn toàn có thể được coi là ‘ mảng của mảng ‘ hoặc ‘ mảng của mảng một chiều ‘. Để khai báo biến mảng hai chiều, tất cả chúng ta phải chỉ định tên mảng theo sau là hai dấu ngoặc vuông trong đó chỉ mục thứ hai là tập hợp dấu ngoặc vuông thứ hai .Mảng hai chiều được tàng trữ dưới dạng ma trận cột hàng, trong đó chỉ mục tiên phong chỉ ra hàng và chỉ mục thứ hai chỉ ra cột. Chỉ mục thứ hai hoặc ngoài cùng bên phải của một mảng biến hóa rất nhanh so với chỉ mục tiên phong hoặc bên trái nhất trong khi truy vấn những thành phần của một mảng . Trong C ++, mảng hai chiều được khai báo là;Trong C + +, mảng hai chiều được khai báo là ;

// khai báo trong kiểu C ++ biến_name [size1] [size2];

Ví dụ : chúng tôi muốn tàng trữ số dư của mỗi 30 ngày trong mỗi tháng trong năm, trong một mảng 2 chiều .

// ví dụ int tháng_balance [12] [30];

Trong Java, mảng hai chiều có được bởi

// khai báo trong kiểu Java biến_name = new int [size1] [size2]; // ví dụ int tháng_balance = new int [12] [30];

Vì tất cả chúng ta không hề truyền hàng loạt mảng dưới dạng tham số cho hàm, một con trỏ tới thành phần tiên phong của mảng được truyền. Một đối số nhận được mảng hai chiều phải xác lập đó là chiều phải nhất. Kích thước ngoài cùng bên phải là bắt buộc vì trình biên dịch cần nó, để xác nhận độ dài của mỗi hàng nếu nó muốn lập chỉ mục cho mảng đúng chuẩn. Nếu chỉ mục bên phải nhất không được đề cập, trình biên dịch không hề xác lập nơi hàng tiếp theo mở màn .

// ví dụ trong Java void receiveing_func (int a [] ) {.. . }

Khi bộ nhớ được phân chia động cho mảng hai chiều trong Java, chỉ mục ngoài cùng bên trái được chỉ định và những size còn lại hoàn toàn có thể được phân chia riêng, tức là tổng thể những hàng của mảng hoàn toàn có thể không có cùng kích cỡ .

// ví dụ trong Java int tháng_balance = new int [12] []; tháng_balance [0] = new int [31]; tháng_balance = new int [28]; tháng_balance = new int [31]; tháng_balance = new int [30]; tháng_balance = new int [31]; tháng_balance = new int [30]; tháng_balance = new int [31]; tháng_balance = new int [30]; tháng_balance = new int [31]; tháng_balance = new int [30]; tháng_balance = new int [31]; tháng_balance [11] = new int [30]; tháng_balance [12] = new int [31];

Nhưng không có lợi thế để làm như vậy .

Sự khác biệt chính giữa mảng một chiều và hai chiều

Mảng một chiều là một danh sách có những phần tử của kiểu dữ liệu tương tự. Mặt khác, mảng hai chiều là một danh sách có những phần tử là mảng có kiểu dữ liệu tương tự.Trong C ++, khi mảng một chiều được nhận bởi tham số của hàm nhận, không cần đề cập đến kích thước của mảng như, trình biên dịch hiểu rằng mảng của kiểu (kiểu dữ liệu được đề cập cùng với tham số) có độ dài sẽ được nhận. Trong một mảng hai chiều, chỉ mục thứ hai hoặc bên phải nhất sẽ được chỉ định là trình biên dịch cần biết nơi một hàng kết thúc và một hàng mới bắt đầu.Trong C ++, mảng một chiều được lưu trữ ở vị trí bộ nhớ liền kề theo thứ tự được lập chỉ mục, trong khi đó mảng hai chiều cũng được lưu trữ ở vị trí bộ nhớ liền kề, nhưng có nhiều hàng trong một mảng hai chiều, lưu trữ của một hàng đầu tiên được theo sau bởi một thứ hai và thứ ba và như vậy.

Chú thích:

Truyền cả hai, mảng một chiều cũng như, mảng hai chiều cho một hàm là tựa như nhau, tức là cả hai chỉ được truyền bằng tên của mảng

// ví dụ chuyền_funt (name_of_array);

Phần kết luận:

Trong cả mảng một chiều và hai chiều, chỉ mục đóng vai trò rất quan trọng vì đó là điều duy nhất xác lập đơn cử một thành phần trong mảng. Cả mảng một chiều và hai chiều hoàn toàn có thể được khởi tạo tại thời gian khai báo .

Pad Thai nghĩa là gì? Tìm hiểu về món Pad Thai của Thái Lan

Giới thiệu: Quang Sơn

Quang Sơn là giám đốc hocdauthau.com - Kênh thông tin học đấu thầu, kiến thức tổng hợp, công nghệ, đời sống.

0 Shares
Share
Tweet
Pin