Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Thao tác kiểu mảng (Array Type Manipulation) trong C++

Thư viện <type_traits> cung cấp các metafunction để kiểm tra và thao tác kiểu mảng tại compile-time.

is_array()

Kiểm tra kiểu có phải mảng không. Trả về true (1) hoặc false (0).

is_array<int>::value        // False
is_array<int[6]>::value     // True
is_array<int[2][3]>::value  // True
is_array<string>::value     // False
is_array<char[4]>::value    // True

is_same()

Kiểm tra hai kiểu có hoàn toàn giống nhau không (kích thước, chiều, kiểu phần tử).

is_same<int[3], int[4]>::value     // False (khac kich thuoc)
is_same<int[5], int[5]>::value     // True
is_same<int[3], int[3][4]>::value  // False (khac chieu)
is_same<int[5], char[5]>::value    // False (khac kieu phan tu)

rank()

Trả về số chiều (rank) của mảng.

rank<int>::value           // 0
rank<int[5]>::value        // 1
rank<int[2][2]>::value     // 2
rank<int[2][3][4]>::value  // 3

extent()

Trả về kích thước của một chiều cụ thể.

extent<int[2][45][5], 0>::value  // 2
extent<int[2][45][5], 1>::value  // 45
extent<int[2][45][5], 2>::value  // 5
extent<int[2][45][5], 3>::value  // 0 (vuot chieu)

remove_extent() / remove_all_extents()

Loại bỏ chiều đầu tiên hoặc tất cả chiều, trả về kiểu phần tử cơ bản.