Auto là một từ khóa trong C ++ 11 trở lên được sử dụng để trừ kiểu tự động. Kiểu suy luận hoặc suy diễn đề cập đến việc phát hiện tự động kiểu dữ liệu của một biểu thức trong ngôn ngữ lập trình. Nó là một tính năng có trong một số ngôn ngữ được đánh kiểu tĩnh mạnh mẽ. Ví dụ:bạn muốn tạo một trình lặp để lặp qua một vectơ, bạn có thể chỉ cần sử dụng auto cho mục đích đó.
ví dụ
#include<iostream> #include<vector> using namespace std; int main() { vector<int> arr(10); for(auto it = arr.begin(); it != arr.end(); it ++) { cin >> *it; } return 0; }
Trong chương trình trên, nó sẽ tự động lấy kiểu std ::vector
Bộ chỉ định kiểu khai báo mang lại kiểu của một biểu thức được chỉ định. Không giống như auto suy ra kiểu dựa trên các giá trị được gán cho biến, kiểu khai báo sẽ suy ra kiểu từ một biểu thức được truyền cho nó. Giá trị được trả về bởi kiểu khai báo có thể được sử dụng trực tiếp để xác định một biến khác. Ví dụ:đoạn mã trên có thể được viết như sau bằng cách sử dụng kiểu khai báo -
Ví dụ
#include <iostream> #include <vector> using namespace std; int main() { vector<int> arr(10); for (decltype(arr.begin()) it = arr.begin(); it != arr.end(); it++) { cin >> *it; } return 0; }
Lưu ý rằng kiểu được biểu thị bằng kiểu khai báo có thể khác với kiểu được suy ra bằng tự động. Bạn có thể đọc thêm về những khác biệt tinh tế này trong giải thích dài 12 trang về phép trừ kiểu trong C ++ −https://thbecker.net/articles/auto_and_decltype/section_01.html