Liệt kê C++

Trong bài này, bạn sẽ học cách làm việc với phép liệt kê (enum). Ngoài ra, bạn sẽ tìm hiểu nơi enums thường được sử dụng trong lập trình C ++.

Liệt kê là một kiểu dữ liệu do người dùng định nghĩa bao gồm các hằng số tích phân. Để xác định một kiểu liệt kê, từ khóa enum được sử dụng.

enum season { spring, summer, autumn, winter };

Ở đây, tên của bảng liệt kê là mùa .

Và, mùa xuân , mùa hè và mùa đông là các giá trị của loại mùa .

Theo mặc định, mùa xuân là 0, mùa hè là 1, v.v. Bạn có thể thay đổi giá trị mặc định của một phần tử enum trong khi khai báo (nếu cần).

enum season 
{   spring = 0, 
    summer = 4, 
    autumn = 8,
    winter = 12
};

Khai báo kiểu được liệt kê

Khi bạn tạo kiểu liệt kê, chỉ bản thiết kế cho biến được tạo. Đây là cách bạn có thể tạo các biến kiểu enum.

enum boolean { false, true };

// inside function
enum boolean check;

Ở đây, một biến kiểm tra các loại enum booleanđược tạo ra.

Đây là một cách khác để khai báo cùng một biến kiểm tra bằng cách sử dụng cú pháp khác nhau.

enum boolean 
{ 
   false, true
} check;

Ví dụ 1: Kiểu liệt kê

#include <iostream>
using namespace std;

enum week { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };

int main()
{
    week today;
    today = Wednesday;
    cout << "Day " << today+1;
    return 0;
}

Đầu ra

Day 4

Ví dụ 2: Thay đổi giá trị mặc định của Enums

#include <iostream>
using namespace std;

enum seasons { spring = 34, summer = 4, autumn = 9, winter = 32};

int main() {

    seasons s;

    s = summer;
    cout << "Summer = " << s << endl;

    return 0;
}

Đầu ra

Summer = 4

Tại sao enums được sử dụng trong lập trình C ++?

Một biến enum chỉ nhận một giá trị trong số nhiều giá trị có thể có. Ví dụ để chứng minh điều đó,

#include <iostream>
using namespace std;

enum suit {
    club = 0,
    diamonds = 10,
    hearts = 20,
    spades = 3
} card;

int main() 
{
    card = club;
    cout << "Size of enum variable " << sizeof(card) << " bytes.";   
    return 0;
}

Đầu ra

Size of enum variable 4 bytes.

Đó là vì kích thước của một số nguyên là 4 byte;

Điều này làm cho enum trở thành một lựa chọn tốt để làm việc với các cờ.

Bạn có thể hoàn thành tác vụ tương tự bằng cách sử dụng cấu trúc C ++ . Tuy nhiên, làm việc với enums mang lại cho bạn hiệu quả cùng với sự linh hoạt.

Làm thế nào để sử dụng enum cho cờ?

Chúng ta hãy lấy một ví dụ,

enum designFlags {
	ITALICS = 1,
	BOLD = 2,
	UNDERLINE = 4
} button;

Giả sử bạn đang thiết kế một nút cho ứng dụng Windows. Bạn có thể đặt cờ ITALICS , BOLD và UNDERLINE để làm việc với văn bản.

Có một lý do tại sao tất cả các hằng số tích phân là lũy thừa của 2 trong mã giả trên.

// In binary

ITALICS = 00000001
BOLD = 00000010
UNDERLINE = 00000100 

Vì, các hằng số tích phân là lũy thừa của 2, bạn có thể kết hợp hai hoặc nhiều cờ cùng một lúc mà không trùng lặp bằng cách sử dụng bitwise OR nhà điều hành. Điều này cho phép bạn chọn hai hoặc nhiều cờ cùng một lúc. Ví dụ,

#include <iostream>
using namespace std;

enum designFlags {
    BOLD = 1,
    ITALICS = 2,
    UNDERLINE = 4
};

int main() 
{
    int myDesign = BOLD | UNDERLINE; 

        //    00000001
        //  | 00000100
        //  ___________
        //    00000101

    cout << myDesign;

    return 0;
}

Đầu ra

5

Khi kết quả đầu ra là 5, bạn luôn biết rằng chữ in đậm và gạch chân được sử dụng.

Ngoài ra, bạn có thể thêm cờ theo yêu cầu của mình.

if (myDesign & ITALICS) {
    // code for italics
}

Ở đây, chúng tôi đã thêm chữ nghiêng vào thiết kế của mình. Lưu ý, chỉ mã cho chữ in nghiêng được viết bên trong câu lệnh if .

Bạn có thể hoàn thành hầu hết mọi thứ trong lập trình C ++ mà không cần sử dụng các phép liệt kê. Tuy nhiên, chúng có thể khá tiện dụng trong một số tình huống nhất định. Đó là điều khác biệt giữa các lập trình viên giỏi và các lập trình viên giỏi.









Gõ tìm kiếm nhanh...