{"id":15639,"date":"2022-10-12T10:24:53","date_gmt":"2022-10-12T04:54:53","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/"},"modified":"2022-10-12T10:24:53","modified_gmt":"2022-10-12T04:54:53","slug":"solved-stdvector-inserting-stdpair","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/","title":{"rendered":"[Solved] std::vector inserting std::pair"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-18260078\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"18260078\" data-parentid=\"18259566\" 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>The original poster failed to actually post the code that was causing the problem.<\/p>\n<p>He has since edited my post with the correct code that demonstrates the problem.  The code that demonstrates the problem follows:<\/p>\n<pre><code>template &lt;class R, typename B=int&gt;\nclass AVectorContainer\n{\npublic:\n  AVectorContainer() {}\n  typedef R* ptr_Type;\n  typedef const B &amp; const_ref_Type;\n  typedef std::pair&lt;const_ref_Type ,ptr_Type&gt; entry;\n\n\n  void insert(ptr_Type aPointer, const_ref_Type aID) {\n     entry aEntry=std::make_pair(aID,aPointer);\n     mVector.push_back(aEntry);\n  }\nprivate:\n  std::vector&lt;entry&gt; mVector;\n};\n\nclass SomeType\n{\npublic:\n  SomeType(){ x=5; }\n  ~SomeType(){ }\n  int x;\n};\n\nint main()\n{\n  SomeType * aTipe= new SomeType;\n  int aID=1;\n  AVectorContainer&lt;SomeType&gt; aContainer;\n  aContainer.insert(aTipe,aID);\n  return 0;\n}\n<\/code><\/pre>\n<p>Compiler output:<\/p>\n<pre><code>\/usr\/include\/c++\/4.7\/bits\/stl_pair.h:88: error: non-static reference member 'const int&amp; std::pair&lt;const int&amp;, SomeType*&gt;::first', can't use default assignment operator\n<\/code><\/pre>\n<p>The flaw is in these lines:<\/p>\n<pre><code>  typedef R* ptr_Type;\n  typedef const B &amp; const_ref_Type;\n  typedef std::pair&lt;const_ref_Type ,ptr_Type&gt; entry;\n  std::vector&lt;entry&gt; mVector;\n<\/code><\/pre>\n<p>Here, the original poster attempts to make a <code>vector<\/code> of <code>pair<\/code>s that contain a constant reference, and then does this:<\/p>\n<pre><code>entry aEntry;\naEntry=std::make_pair(aID,aPointer )\n<\/code><\/pre>\n<p>this attempts to assign one pair to another.  But <code>const&amp;<\/code> variables cannot be assigned to another &#8212; they can be constructed (initialized) from another <code>const&amp;<\/code>, but not assigned.<\/p>\n<p>An easy fix is:<\/p>\n<pre><code>entry aEntry=std::make_pair(aID,aPointer )\n<\/code><\/pre>\n<p>so that we are not constructing <code>aEntry<\/code> from another <code>entry<\/code>, instead of default constructing <code>aEntry<\/code> (which is also illegal: <code>const&amp;<\/code> must be initialized), then assigning to it.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">5<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved std::vector inserting std::pair <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] The original poster failed to actually post the code that was causing the problem. He has since edited my post with the correct code that demonstrates the problem. The code that demonstrates the problem follows: template &lt;class R, typename B=int&gt; class AVectorContainer { public: AVectorContainer() {} typedef R* ptr_Type; typedef const B &amp; const_ref_Type; &#8230; <a title=\"[Solved] std::vector inserting std::pair\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/\" aria-label=\"More on [Solved] std::vector inserting std::pair\">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,4046,2585,761,435],"class_list":["post-15639","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-std-pair","tag-stdvector","tag-stl","tag-templates"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] std::vector inserting std::pair - 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-stdvector-inserting-stdpair\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] std::vector inserting std::pair - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] The original poster failed to actually post the code that was causing the problem. He has since edited my post with the correct code that demonstrates the problem. The code that demonstrates the problem follows: template &lt;class R, typename B=int&gt; class AVectorContainer { public: AVectorContainer() {} typedef R* ptr_Type; typedef const B &amp; const_ref_Type; ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-12T04:54:53+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=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] std::vector inserting std::pair\",\"datePublished\":\"2022-10-12T04:54:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/\"},\"wordCount\":129,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\",\"std-pair\",\"stdvector\",\"stl\",\"templates\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/\",\"name\":\"[Solved] std::vector inserting std::pair - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-10-12T04:54:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] std::vector inserting std::pair\"}]},{\"@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\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] std::vector inserting std::pair - 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-stdvector-inserting-stdpair\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] std::vector inserting std::pair - JassWeb","og_description":"[ad_1] The original poster failed to actually post the code that was causing the problem. He has since edited my post with the correct code that demonstrates the problem. The code that demonstrates the problem follows: template &lt;class R, typename B=int&gt; class AVectorContainer { public: AVectorContainer() {} typedef R* ptr_Type; typedef const B &amp; const_ref_Type; ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/","og_site_name":"JassWeb","article_published_time":"2022-10-12T04:54:53+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] std::vector inserting std::pair","datePublished":"2022-10-12T04:54:53+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/"},"wordCount":129,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","std-pair","stdvector","stl","templates"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/","url":"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/","name":"[Solved] std::vector inserting std::pair - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-10-12T04:54:53+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-stdvector-inserting-stdpair\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] std::vector inserting std::pair"}]},{"@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\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","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\/15639","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=15639"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/15639\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=15639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=15639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=15639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}