{"id":26976,"date":"2024-03-16T07:39:48","date_gmt":"2024-03-16T07:39:48","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/"},"modified":"2024-03-22T09:54:04","modified_gmt":"2024-03-22T09:54:04","slug":"what-is-the-usage-of-auto-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/","title":{"rendered":"What is the usage of auto in C++?"},"content":{"rendered":"<p>In C++11, the &#8216;auto&#8217; keyword was introduced for automatically inferring the type of a variable. Its syntax form is &#8216;auto variable_name = expression;&#8217;, where the type of the expression will be automatically deduced as the type of the variable.<\/p>\n<p>The use of auto can simplify the code, eliminating the need for repeatedly declaring variable types and handling complex type inference situations, such as iterating through elements in a container using iterators or situations where the return type of a function is uncertain.<\/p>\n<p>Here are some sample codes to demonstrate the usage of &#8216;auto&#8217;:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ \u4f7f\u7528auto\u8fdb\u884c\u53d8\u91cf\u7c7b\u578b\u63a8\u5bfc<\/span>\r\n<span class=\"hljs-keyword\">auto<\/span> num = <span class=\"hljs-number\">10<\/span>; <span class=\"hljs-comment\">\/\/ \u63a8\u5bfc\u4e3aint\u7c7b\u578b<\/span>\r\n<span class=\"hljs-keyword\">auto<\/span> name = <span class=\"hljs-string\">\"Alice\"<\/span>; <span class=\"hljs-comment\">\/\/ \u63a8\u5bfc\u4e3aconst char*\u7c7b\u578b<\/span>\r\n<span class=\"hljs-keyword\">auto<\/span> result = <span class=\"hljs-number\">3.14<\/span> + <span class=\"hljs-number\">2<\/span>; <span class=\"hljs-comment\">\/\/ \u63a8\u5bfc\u4e3adouble\u7c7b\u578b<\/span>\r\n\r\n<span class=\"hljs-comment\">\/\/ \u4f7f\u7528auto\u904d\u5386\u5bb9\u5668\u4e2d\u7684\u5143\u7d20<\/span>\r\nstd::vector&lt;<span class=\"hljs-type\">int<\/span>&gt; numbers = {<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">4<\/span>, <span class=\"hljs-number\">5<\/span>};\r\n<span class=\"hljs-keyword\">for<\/span>(<span class=\"hljs-keyword\">auto<\/span> it = numbers.<span class=\"hljs-built_in\">begin<\/span>(); it != numbers.<span class=\"hljs-built_in\">end<\/span>(); ++it) {\r\n    std::cout &lt;&lt; *it &lt;&lt; <span class=\"hljs-string\">\" \"<\/span>;\r\n}\r\n<span class=\"hljs-comment\">\/\/ \u8f93\u51fa\uff1a1 2 3 4 5<\/span>\r\n\r\n<span class=\"hljs-comment\">\/\/ \u4f7f\u7528auto\u63a8\u5bfc\u51fd\u6570\u8fd4\u56de\u503c\u7c7b\u578b<\/span>\r\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">auto<\/span> <span class=\"hljs-title\">add<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">int<\/span> a, <span class=\"hljs-type\">int<\/span> b)<\/span> -&gt; <span class=\"hljs-type\">int<\/span> <\/span>{\r\n    <span class=\"hljs-keyword\">return<\/span> a + b;\r\n}\r\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">auto<\/span> <span class=\"hljs-title\">divide<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">double<\/span> a, <span class=\"hljs-type\">double<\/span> b)<\/span> -&gt; <span class=\"hljs-title\">decltype<\/span><span class=\"hljs-params\">(a \/ b)<\/span> <\/span>{\r\n    <span class=\"hljs-keyword\">return<\/span> a \/ b;\r\n}\r\n<\/code><\/pre>\n<p>It is important to note that &#8216;auto&#8217; can only be used when defining variables, and not in function parameters or class member variables. When using &#8216;auto&#8217; to deduce the variable type, make sure that the expression&#8217;s type is clear, otherwise the compiler will not be able to deduce the correct type.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C++11, the &#8216;auto&#8217; keyword was introduced for automatically inferring the type of a variable. Its syntax form is &#8216;auto variable_name = expression;&#8217;, where the type of the expression will be automatically deduced as the type of the variable. The use of auto can simplify the code, eliminating the need for repeatedly declaring variable types [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-26976","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is the usage of auto in C++? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is the usage of auto in C++?\" \/>\n<meta property=\"og:description\" content=\"In C++11, the &#8216;auto&#8217; keyword was introduced for automatically inferring the type of a variable. Its syntax form is &#8216;auto variable_name = expression;&#8217;, where the type of the expression will be automatically deduced as the type of the variable. The use of auto can simplify the code, eliminating the need for repeatedly declaring variable types [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-16T07:39:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T09:54:04+00:00\" \/>\n<meta name=\"author\" content=\"Isabella Edwards\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Isabella Edwards\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/\"},\"author\":{\"name\":\"Isabella Edwards\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd\"},\"headline\":\"What is the usage of auto in C++?\",\"datePublished\":\"2024-03-16T07:39:48+00:00\",\"dateModified\":\"2024-03-22T09:54:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/\"},\"wordCount\":153,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/\",\"name\":\"What is the usage of auto in C++? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T07:39:48+00:00\",\"dateModified\":\"2024-03-22T09:54:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is the usage of auto in C++?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd\",\"name\":\"Isabella Edwards\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"caption\":\"Isabella Edwards\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is the usage of auto in C++? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/","og_locale":"en_US","og_type":"article","og_title":"What is the usage of auto in C++?","og_description":"In C++11, the &#8216;auto&#8217; keyword was introduced for automatically inferring the type of a variable. Its syntax form is &#8216;auto variable_name = expression;&#8217;, where the type of the expression will be automatically deduced as the type of the variable. The use of auto can simplify the code, eliminating the need for repeatedly declaring variable types [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T07:39:48+00:00","article_modified_time":"2024-03-22T09:54:04+00:00","author":"Isabella Edwards","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Isabella Edwards","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/"},"author":{"name":"Isabella Edwards","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd"},"headline":"What is the usage of auto in C++?","datePublished":"2024-03-16T07:39:48+00:00","dateModified":"2024-03-22T09:54:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/"},"wordCount":153,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/","name":"What is the usage of auto in C++? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T07:39:48+00:00","dateModified":"2024-03-22T09:54:04+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-auto-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What is the usage of auto in C++?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd","name":"Isabella Edwards","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","caption":"Isabella Edwards"},"url":"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/26976","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=26976"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/26976\/revisions"}],"predecessor-version":[{"id":61177,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/26976\/revisions\/61177"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=26976"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=26976"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=26976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}