{"id":14220,"date":"2024-03-15T08:41:47","date_gmt":"2024-03-15T08:41:47","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/"},"modified":"2025-08-06T05:38:49","modified_gmt":"2025-08-06T05:38:49","slug":"how-to-use-anonymous-functions-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/","title":{"rendered":"C++ Lambda Expressions Guide"},"content":{"rendered":"<p>In C++, lambda expressions can be used to create anonymous functions. Lambda expressions can be used where function objects are needed, such as as function parameters, assigned to variables, or directly called.<\/p>\n<p>The basic syntax of a lambda expression is as follows:<\/p>\n<p>Capture list -> return type {<br \/>\n  body of function<br \/>\n}<\/p>\n<p>The capture list is used to capture local variables, the parameter list is used to define function parameters, the return type is used to define the function&#8217;s return value type, and the function body is used to define the function&#8217;s logic.<\/p>\n<p>Here is an example using a lambda expression:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;iostream&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;vector&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;algorithm&gt;<\/span><\/span>\r\n\r\n<span class=\"hljs-function\"><span class=\"hljs-type\">int<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n   std::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\r\n   <span class=\"hljs-comment\">\/\/ \u4f7f\u7528\u533f\u540d\u51fd\u6570\u4f5c\u4e3asort\u51fd\u6570\u7684\u6bd4\u8f83\u51fd\u6570<\/span>\r\n   std::<span class=\"hljs-built_in\">sort<\/span>(numbers.<span class=\"hljs-built_in\">begin<\/span>(), numbers.<span class=\"hljs-built_in\">end<\/span>(), [](<span class=\"hljs-type\">int<\/span> a, <span class=\"hljs-type\">int<\/span> b) {\r\n      <span class=\"hljs-keyword\">return<\/span> a &gt; b;\r\n   });\r\n\r\n   <span class=\"hljs-comment\">\/\/ \u4f7f\u7528\u533f\u540d\u51fd\u6570\u6253\u5370\u6392\u5e8f\u540e\u7684\u7ed3\u679c<\/span>\r\n   std::for_each(numbers.<span class=\"hljs-built_in\">begin<\/span>(), numbers.<span class=\"hljs-built_in\">end<\/span>(), [](<span class=\"hljs-type\">int<\/span> num) {\r\n      std::cout &lt;&lt; num &lt;&lt; <span class=\"hljs-string\">\" \"<\/span>;\r\n   });\r\n\r\n   <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\r\n}\r\n<\/code><\/pre>\n<p>In the code above, we are using a lambda expression as the comparison function for the std::sort() function to sort numbers in descending order. We then use a lambda expression as the operation function for the std::for_each() function to print the sorted result.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C++, lambda expressions can be used to create anonymous functions. Lambda expressions can be used where function objects are needed, such as as function parameters, assigned to variables, or directly called. The basic syntax of a lambda expression is as follows: Capture list -> return type { body of function } The capture list [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[4505,19154,381,450,19155],"class_list":["post-14220","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-anonymous-functions","tag-c-lambda","tag-c-programming","tag-c-tutorial","tag-lambda-capture"],"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>C++ Lambda Expressions Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Master C++ lambda expressions (anonymous functions) with syntax examples and practical usage tips.\" \/>\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\/how-to-use-anonymous-functions-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C++ Lambda Expressions Guide\" \/>\n<meta property=\"og:description\" content=\"Master C++ lambda expressions (anonymous functions) with syntax examples and practical usage tips.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-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-15T08:41:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-06T05:38:49+00:00\" \/>\n<meta name=\"author\" content=\"Jackson Davis\" \/>\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=\"Jackson Davis\" \/>\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\/how-to-use-anonymous-functions-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"C++ Lambda Expressions Guide\",\"datePublished\":\"2024-03-15T08:41:47+00:00\",\"dateModified\":\"2025-08-06T05:38:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/\"},\"wordCount\":151,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Anonymous functions\",\"C++ Lambda\",\"C++ Programming\",\"C++ tutorial\",\"Lambda Capture\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/\",\"name\":\"C++ Lambda Expressions Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T08:41:47+00:00\",\"dateModified\":\"2025-08-06T05:38:49+00:00\",\"description\":\"Master C++ lambda expressions (anonymous functions) with syntax examples and practical usage tips.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ Lambda Expressions Guide\"}]},{\"@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\/55a10b8b0457c35884c25677889ad350\",\"name\":\"Jackson Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"caption\":\"Jackson Davis\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C++ Lambda Expressions Guide - Blog - Silicon Cloud","description":"Master C++ lambda expressions (anonymous functions) with syntax examples and practical usage tips.","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\/how-to-use-anonymous-functions-in-c\/","og_locale":"en_US","og_type":"article","og_title":"C++ Lambda Expressions Guide","og_description":"Master C++ lambda expressions (anonymous functions) with syntax examples and practical usage tips.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T08:41:47+00:00","article_modified_time":"2025-08-06T05:38:49+00:00","author":"Jackson Davis","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Jackson Davis","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"C++ Lambda Expressions Guide","datePublished":"2024-03-15T08:41:47+00:00","dateModified":"2025-08-06T05:38:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/"},"wordCount":151,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Anonymous functions","C++ Lambda","C++ Programming","C++ tutorial","Lambda Capture"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/","name":"C++ Lambda Expressions Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T08:41:47+00:00","dateModified":"2025-08-06T05:38:49+00:00","description":"Master C++ lambda expressions (anonymous functions) with syntax examples and practical usage tips.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-anonymous-functions-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"C++ Lambda Expressions Guide"}]},{"@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\/55a10b8b0457c35884c25677889ad350","name":"Jackson Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","caption":"Jackson Davis"},"url":"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14220","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\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=14220"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14220\/revisions"}],"predecessor-version":[{"id":158244,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14220\/revisions\/158244"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=14220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=14220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=14220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}