Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

คำหลักอัตโนมัติทำอะไรใน C ++


Auto เป็นคีย์เวิร์ดที่ C++ "สืบทอด" จากภาษา C ซึ่งอยู่ที่นั่นเกือบตลอดไป แต่แทบไม่เคยใช้เลย ทั้งหมดนี้เปลี่ยนไปด้วยการแนะนำ auto to do type deduction จากบริบทใน C ++ 11 ก่อน C++ 11 ข้อมูลแต่ละประเภทจะต้องมีการประกาศอย่างชัดแจ้ง ณ เวลาคอมไพล์ โดยจำกัดค่าของนิพจน์ขณะรันไทม์ แต่หลังจาก C++ เวอร์ชันใหม่ คีย์เวิร์ดจำนวนมากจะถูกรวมไว้ด้วย ซึ่งช่วยให้โปรแกรมเมอร์ปล่อยให้การหักประเภทนั้นตกเป็นของคอมไพเลอร์เอง

ด้วยความสามารถในการอนุมานชนิด เราสามารถใช้เวลาน้อยลงในการเขียนสิ่งที่คอมไพเลอร์รู้อยู่แล้ว เนื่องจากทุกประเภทถูกอนุมานในเฟสคอมไพเลอร์เท่านั้น เวลาในการคอมไพล์จึงเพิ่มขึ้นเล็กน้อยแต่จะไม่ส่งผลต่อรันไทม์ของโปรแกรม

คีย์เวิร์ดอัตโนมัติระบุว่าประเภทของตัวแปรที่ประกาศเริ่มต้นจะถูกอนุมานโดยอัตโนมัติจากตัวเริ่มต้นและสำหรับฟังก์ชัน หากประเภทการส่งคืนเป็นอัตโนมัติ ค่านั้นจะถูกประเมินโดยนิพจน์ประเภทส่งคืนที่รันไทม์

ตัวอย่าง

#include<iostream>
#incllude<vector>
using namespace std;

int main() {
   vector<int> vec(10);       // Auto deduce type to be iterator of a vector of ints.
   for(auto it = vec.begin(); it != vec.end(); vec ++)
   {
      cin >> *it;
   }
   return 0;
}