{"id":16670,"date":"2022-10-21T20:41:03","date_gmt":"2022-10-21T15:11:03","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/"},"modified":"2022-10-21T20:41:03","modified_gmt":"2022-10-21T15:11:03","slug":"solved-c-vector-of-struct-allocated-on-stack","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/","title":{"rendered":"[Solved] C++ vector of struct allocated on stack"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-56913273\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"56913273\" data-parentid=\"56912852\" data-score=\"2\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>There are some options you can use. The first and easiest one, is to define a value to each (or for one) of your struct&#8217;s variables, that will point that the struct is not initialized yet. In this case, <code>age<\/code> should be large or equal to 0, to be logicly straight. So, you can initialize it to -1, like this:<\/p>\n<pre><code>struct MyInfo {\n    string name;\n    int age = -1;\n};\n\/\/ Or\nstruct MyInfo {\n    string name;\n    int age;\n    MyInfo() : name(\"\"), age(-1) {} \/\/ Use constructor\n};\n<\/code><\/pre>\n<p>Now, in your main function, it will print in the <code>age<\/code> the value -1. Also, you can see the empty of the <code>name<\/code> variable as a sign for it too.<\/p>\n<p>Another way might be using flag and get\/set operations to indicate when the variables are initialize:<\/p>\n<pre><code>struct MyInfo {\nprivate:\n    std::string _name;\n    int _age;\n    bool age_initialize = false;\n    bool name_initialize = false;\n\npublic:\n    void name(const std::string &amp;name_p) { _name = name_p; name_initialize = true; }\n    void age(int age_p) { _age = age_p; age_initialize = true; }\n    void init(int age_p, const std::string &amp;name_p) { age(age_p); name(name_p); }\n    bool is_initialize() { return name_initialize &amp;&amp; age_initialize; }\n    int age() { return _age; }\n    std::string name() { return _name; }\n};\n\nint main() {\n    std::vector&lt;MyInfo&gt; vec(5);\n    std::cout &lt;&lt; \"vec.size(): \" &lt;&lt; vec.size() &lt;&lt; std::endl;\n\n    auto x = vec[0];\n    std::cout &lt;&lt; x.is_initialize() &lt;&lt; std::endl; \/\/this print 0\n    std::cout &lt;&lt; x.name() &lt;&lt; std::endl; \/\/this print \"\" empty string\n    std::cout &lt;&lt; x.age() &lt;&lt; std::endl; \/\/this print 0\n\n    return 0;\n}\n<\/code><\/pre>\n<p>You can also throw an exception when calling <code>int age()<\/code> of <code>std::string name()<\/code> function, if those values are not initialize yet:<\/p>\n<pre><code>struct MyInfo {\nprivate:\n    \/* ... *\/\n\npublic:\n    \/* ... *\/\n    int age() {\n        if (!age_initialize) throw std::runtime_error(\"Please initialize age first.\");\n        return _age;\n    }\n    std::string name() {\n        if (!name_initialize) throw std::runtime_error(\"Please initialize name first.\");\n        return _name;\n    }\n};\n<\/code><\/pre>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved C++ vector of struct allocated on stack <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] There are some options you can use. The first and easiest one, is to define a value to each (or for one) of your struct&#8217;s variables, that will point that the struct is not initialized yet. In this case, age should be large or equal to 0, to be logicly straight. So, you can &#8230; <a title=\"[Solved] C++ vector of struct allocated on stack\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/\" aria-label=\"More on [Solved] C++ vector of struct allocated on stack\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[324],"class_list":["post-16670","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>[Solved] C++ vector of struct allocated on stack - JassWeb<\/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:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] C++ vector of struct allocated on stack - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] There are some options you can use. The first and easiest one, is to define a value to each (or for one) of your struct&#8217;s variables, that will point that the struct is not initialized yet. In this case, age should be large or equal to 0, to be logicly straight. So, you can ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-21T15:11:03+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-vector-of-struct-allocated-on-stack\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-vector-of-struct-allocated-on-stack\\\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] C++ vector of struct allocated on stack\",\"datePublished\":\"2022-10-21T15:11:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-vector-of-struct-allocated-on-stack\\\/\"},\"wordCount\":139,\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"keywords\":[\"c++\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-vector-of-struct-allocated-on-stack\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-vector-of-struct-allocated-on-stack\\\/\",\"name\":\"[Solved] C++ vector of struct allocated on stack - JassWeb\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\"},\"datePublished\":\"2022-10-21T15:11:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-vector-of-struct-allocated-on-stack\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-vector-of-struct-allocated-on-stack\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-vector-of-struct-allocated-on-stack\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] C++ vector of struct allocated on stack\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\\\/\\\/jassweb.com\"],\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/author\\\/jaspritsinghghumangmail-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] C++ vector of struct allocated on stack - JassWeb","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:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] C++ vector of struct allocated on stack - JassWeb","og_description":"[ad_1] There are some options you can use. The first and easiest one, is to define a value to each (or for one) of your struct&#8217;s variables, that will point that the struct is not initialized yet. In this case, age should be large or equal to 0, to be logicly straight. So, you can ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/","og_site_name":"JassWeb","article_published_time":"2022-10-21T15:11:03+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] C++ vector of struct allocated on stack","datePublished":"2022-10-21T15:11:03+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/"},"wordCount":139,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/","url":"https:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/","name":"[Solved] C++ vector of struct allocated on stack - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-10-21T15:11:03+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-c-vector-of-struct-allocated-on-stack\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] C++ vector of struct allocated on stack"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/16670","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=16670"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/16670\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=16670"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=16670"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=16670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}