Tìm kích thước mảng C ++

Find Array Size C



Mảng là một vùng chứa có các phần tử của cùng một kiểu dữ liệu. Nếu chúng ta không biết kích thước thực của một mảng, nó có thể được xác định bằng các phương pháp khác nhau. Khi chúng ta nói về kích thước của một mảng, trên thực tế chúng ta đang nói về số lượng phần tử có trong mảng. Đôi khi, chúng tôi xác định kích thước mảng và đôi khi dấu ngoặc vuông để trống. Đây là kích thước biểu kiến ​​chỉ cho biết khả năng lưu trữ giá trị của một mảng trong đó. Ví dụ: hãy xem xét một khai báo mảng mẫu

Mảng Int[] = {1,2,3,4,5,6}

Ở đây kích thước của một mảng hoặc độ dài của một mảng là 6. Và tổng kích thước mảng sẽ được gán không được hiển thị. Kích thước thực tế có được bằng cách áp dụng các hoạt động khác nhau. Các phép toán này được sử dụng trong bài viết này để lấy kích thước của một mảng.







ví dụ 1

Trong hình minh họa này, chúng ta sẽ sử dụng khái niệm begin () và end (). Thông qua phương pháp này, kích thước của một mảng có thể được biết một cách dễ dàng. Đây là hai thư viện được biết đến với các thư viện tiêu chuẩn. Hai hàm này trả về các trình vòng lặp hiển thị điểm đầu tiên và điểm kết thúc của mảng. Bắt đầu từ tiêu đề, chúng tôi sử dụng một thư viện mảng. Điều này sẽ bao gồm tất cả các hàm liên quan đến mảng. Trong hàm main, chúng ta đã khởi tạo một mảng có các giá trị nguyên.



Trị giá<<……….<<kết thúc(đến)-begib(đến)<<

Ở đây chúng tôi không đề cập đến kích thước mảng. Trong câu lệnh hiển thị theo sau cout, chúng ta có sử dụng các hàm end () và begin (). Sự không giống nhau giữa hai hàm này sẽ cho chúng ta thấy kích thước của một mảng. Trong các tham số của các hàm này, chúng ta đã truyền mảng. Bằng cách này, kích thước thực tế sẽ được xác định. Giá trị kết quả từ các hàm này được hiển thị trực tiếp.







Bây giờ đang chuyển sang đầu ra. Chúng tôi phải thực thi các chương trình này trong Linux, vì vậy chúng tôi cần sự tham gia của thiết bị đầu cuối Ubuntu. Vì chúng ta đang sử dụng mã C ++, vì vậy chúng ta cần biên dịch mã thông qua trình biên dịch. Đó là trình biên dịch G ++. Sau khi biên dịch mã, chúng tôi sẽ thực thi nó. Các lệnh dưới đây cho thấy cách tiếp cận đầu ra mà chúng tôi đã sử dụng.

$ g++ -o mã2 mã2.NS

$./code2



Bây giờ bạn có thể thấy đầu ra. Một ví dụ tương tự khác trong trường hợp của std là hàm khoảng cách. Trong khoảng cách này được tính bằng cách sử dụng các hàm begin () và end (). Điều này được hoàn thành bằng cách sử dụng các chức năng này với std.

Int n=giờ:: khoảng cách(giờ::bắt đầu(arr),giờ::kết thúc(arr));

Kết quả thu được trong câu lệnh cout. Để xem bản ghi, hãy sử dụng lại trình biên dịch để thực thi mã.

Ở đây bạn có thể thấy rằng đầu ra mong muốn của chúng tôi đã đạt được.

Ví dụ 2

Ví dụ này liên quan đến việc sử dụng hàm sizeof () trong mã C ++, vì giá trị này trả về kích thước thực của dữ liệu ở dạng byte. Hơn nữa, nó cũng giải quyết việc trả về số byte được sử dụng để lưu trữ một mảng. Nói cách khác, Trong ví dụ này, bước đầu tiên là khởi tạo một mảng mà không cần khai báo kích thước của một mảng. cú pháp được sử dụng cho hàm sizeof () là:

Int al= kích thước(arr)/kích thước(arr[0]);

Trong đó arr là mảng. arr [0] hiển thị chỉ số của các phần tử trong mảng.

Vì vậy, câu lệnh này ngụ ý rằng kích thước mảng được chia cho kích thước của tất cả các phần tử có mặt, từng phần tử một. Điều này giúp ích trong việc tính toán chiều dài. Chúng tôi đã sử dụng một biến số nguyên để nhận và lưu trữ giá trị trả về từ hàm.

Chúng ta sẽ lấy kết quả ở đây từ dấu nhắc lệnh bằng cùng một phương thức biên dịch-thực thi.

Đầu ra hiển thị kích thước của mảng, ngụ ý số phần tử có trong nó, là 6.

Ví dụ 3

Ví dụ này bao gồm việc sử dụng hàm size (). Hàm này được đặt trong thư viện chuẩn, STL. Bước đầu tiên trong chương trình chính là khai báo mảng. Ở đây tên của mảng cũng chứa kích thước và giá trị số nguyên. Phương thức này cũng trả về kết quả trực tiếp trong câu lệnh đầu ra.

Trị giá<<….<<arr.kích thước()<<

Trong đó ‘arr’ là mảng, để tìm nạp kết quả hoặc truy cập vào hàm, chúng ta cần tên của mảng với hàm size.

Để hiển thị kết quả, chúng tôi sử dụng trình biên dịch g ++ để biên dịch và thực thi kết quả.

Từ đầu ra, bạn có thể thấy rằng kết quả là kết quả mong muốn của chúng tôi, hiển thị kích thước thực của mảng.

Ví dụ 4

Kích thước của một mảng cũng có thể được lấy bằng cách sử dụng con trỏ vì con trỏ lưu trữ địa chỉ / vị trí của giá trị của biến. Bây giờ hãy xem xét ví dụ dưới đây được đưa ra.

Bước đầu tiên là khởi tạo một mảng như bình thường. Sau đó, con trỏ hoạt động cho kích thước mảng.

Int len= *(&mảng+ 1)- mảng;

Đây là câu lệnh cốt lõi hoạt động như một con trỏ. * được sử dụng để xác định vị trí của bất kỳ phần tử nào trong một mảng, trong khi toán tử & được sử dụng để lấy giá trị của vị trí thu được thông qua con trỏ. Đây là cách chúng tôi lấy kích thước mảng từ con trỏ. Kết quả được hiển thị thông qua thiết bị đầu cuối. Câu trả lời là như nhau. Như kích thước của mảng được đề cập đã được nêu là 13.

Ví dụ 5

Trong ví dụ này, chúng tôi đã sử dụng ý tưởng về suy luận đối số mẫu. Đối số mẫu là một tham số thuộc loại đặc biệt. Nó được sử dụng để truyền một đối số thuộc bất kỳ kiểu nào, giống như các hàm thông thường có thể được truyền dưới dạng một đối số.

Khi một mảng được truyền dưới dạng tham số, nó sẽ được chuyển đổi thành một con trỏ để hiển thị địa chỉ. Để có được độ dài của mảng cụ thể, chúng tôi sử dụng cách tiếp cận này của suy luận đối số mẫu. Std là một dạng ngắn của tiêu chuẩn.

Xem xét ví dụ đã cho, chúng tôi đã giới thiệu một lớp mẫu được sử dụng để lấy kích thước mảng. Nó là một lớp dựng sẵn mặc định chứa tất cả các chức năng của các đối số mẫu.

Constexpr std: : size_tkích thước(hăng sôNS(&mảng)[n])không có ngoại lệ{

trở lạin;

}

Đây là một dòng không đổi trong khái niệm này. Đầu ra được lấy trực tiếp trong câu lệnh cout.

Từ đầu ra, bạn có thể thấy rằng chúng tôi đã có đầu ra mong muốn: kích thước mảng.

Ví dụ 6

Chúng tôi sử dụng std :: vector để lấy kích thước mảng trong chương trình. Đây là một loại thùng chứa; chức năng của nó là lưu trữ các mảng động. Nó hoạt động với các phương pháp khác nhau cho các hoạt động khác nhau. Để thực hiện ví dụ này, chúng tôi đã sử dụng thư viện vectơ bao gồm tất cả các hàm vectơ trong đó. Nó cũng khai báo các câu lệnh cin, cout, endl và vector sẽ được sử dụng trong chương trình. Một mảng được khởi tạo đầu tiên trong chương trình. Đầu ra được hiển thị trong câu lệnh cout theo kích thước vectơ.

Trị giá<<kích thước vector: <<int_array.kích thước() <<endl;

Bây giờ chúng ta sẽ thấy đầu ra từ thiết bị đầu cuối Ubuntu. Kích thước của mảng chính xác với các phần tử có trong nó.

Phần kết luận

Trong hướng dẫn này, chúng tôi đã sử dụng một cách tiếp cận khác để lấy độ dài hoặc kích thước mảng. Một số là các chức năng được tích hợp sẵn, trong khi những chức năng khác được sử dụng theo cách thủ công.