{"id":10091,"date":"2015-07-29T09:00:21","date_gmt":"2015-07-29T13:00:21","guid":{"rendered":"http:\/\/bangla.salearningschool.com\/?p=10091"},"modified":"2015-08-04T10:11:01","modified_gmt":"2015-08-04T14:11:01","slug":"sort-objects-stored-in-deque","status":"publish","type":"post","link":"http:\/\/bangla.sitestree.com\/?p=10091","title":{"rendered":"Sort objects stored in deque"},"content":{"rendered":"<pre>\/* The following code example is taken from the book\r\n\u00a0* \"The C++ Standard Library - A Tutorial and Reference\"\r\n\u00a0* by Nicolai M. Josuttis, Addison-Wesley, 1999\r\n\u00a0*\r\n\u00a0* (C) Copyright Nicolai M. Josuttis 1999.\r\n\u00a0* Permission to copy, use, modify, sell and distribute this software\r\n\u00a0* is granted provided this copyright notice appears in all copies.\r\n\u00a0* This software is provided \"as is\" without express or implied\r\n\u00a0* warranty, and with no claim as to its suitability for any purpose.\r\n\u00a0*\/\r\n#include &lt;iostream&gt;\r\n#include &lt;string&gt;\r\n#include &lt;deque&gt;\r\n#include &lt;set&gt;\r\n#include &lt;algorithm&gt;\r\nusing namespace std;\r\n\r\n\r\n\/* class Person\r\n\u00a0*\/\r\nclass Person {\r\n\u00a0 private:\r\n\u00a0\u00a0\u00a0 string fn;\u00a0\u00a0\u00a0 \/\/ first name\r\n\u00a0\u00a0\u00a0 string ln;\u00a0\u00a0\u00a0 \/\/ last name\r\n\u00a0 public:\r\n\u00a0\u00a0\u00a0 Person() {\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 Person(const string&amp; f, const string&amp; n)\r\n\u00a0\u00a0\u00a0\u00a0 : fn(f), ln(n) {\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 string firstname() const;\r\n\u00a0\u00a0\u00a0 string lastname() const;\r\n\u00a0\u00a0\u00a0 \/\/ ...\r\n};\r\n\r\ninline string Person::firstname() const {\r\n\u00a0\u00a0\u00a0 return fn;\r\n}\r\n\r\ninline string Person::lastname() const {\r\n\u00a0\u00a0\u00a0 return ln;\r\n}\r\n\r\nostream&amp; operator&lt;&lt; (ostream&amp; s, const Person&amp; p)\r\n{\r\n\u00a0\u00a0\u00a0 s &lt;&lt; \"[\" &lt;&lt; p.firstname() &lt;&lt; \" \" &lt;&lt; p.lastname() &lt;&lt; \"]\";\r\n\u00a0\u00a0\u00a0 return s;\r\n}\r\n\r\n\r\n\/* binary function predicate:\r\n\u00a0* - returns whether a person is less than another person\r\n\u00a0*\/\r\nbool personSortCriterion (const Person&amp; p1, const Person&amp; p2)\r\n{\r\n\u00a0\u00a0\u00a0 \/* a person is less than another person\r\n\u00a0\u00a0\u00a0\u00a0 * - if the last name is less\r\n\u00a0\u00a0\u00a0\u00a0 * - if the last name is equal and the first name is less\r\n\u00a0\u00a0\u00a0\u00a0 *\/\r\n\u00a0\u00a0\u00a0 return p1.lastname()&lt;p2.lastname() ||\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (p1.lastname()==p2.lastname() &amp;&amp;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 p1.firstname()&lt;p2.firstname());\r\n}\r\n\r\nint main()\r\n{\r\n\u00a0\u00a0\u00a0 \/\/ create some persons\r\n\u00a0\u00a0\u00a0 Person p1(\"nicolai\",\"josuttis\");\r\n\u00a0\u00a0\u00a0 Person p2(\"ulli\",\"josuttis\");\r\n\u00a0\u00a0\u00a0 Person p3(\"anica\",\"josuttis\");\r\n\u00a0\u00a0\u00a0 Person p4(\"lucas\",\"josuttis\");\r\n\u00a0\u00a0\u00a0 Person p5(\"lucas\",\"otto\");\r\n\u00a0\u00a0\u00a0 Person p6(\"lucas\",\"arm\");\r\n\u00a0\u00a0\u00a0 Person p7(\"anica\",\"holle\");\r\n\r\n\u00a0\u00a0\u00a0 \/\/ insert person into collection coll\r\n\u00a0\u00a0\u00a0 deque&lt;Person&gt; coll;\r\n\u00a0\u00a0\u00a0 coll.push_back(p1);\r\n\u00a0\u00a0\u00a0 coll.push_back(p2);\r\n\u00a0\u00a0\u00a0 coll.push_back(p3);\r\n\u00a0\u00a0\u00a0 coll.push_back(p4);\r\n\u00a0\u00a0\u00a0 coll.push_back(p5);\r\n\u00a0\u00a0\u00a0 coll.push_back(p6);\r\n\u00a0\u00a0\u00a0 coll.push_back(p7);\r\n\r\n\u00a0\u00a0\u00a0 \/\/ print elements\r\n\u00a0\u00a0\u00a0 cout &lt;&lt; \"deque before sort():\" &lt;&lt; endl;\r\n\u00a0\u00a0\u00a0 deque&lt;Person&gt;::iterator pos;\r\n\u00a0\u00a0\u00a0 for (pos = coll.begin(); pos != coll.end(); ++pos) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 cout &lt;&lt; *pos &lt;&lt; endl;\r\n\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0\u00a0 \/\/ sort elements\r\n\u00a0\u00a0\u00a0 sort(coll.begin(),coll.end(),\u00a0\u00a0\u00a0 \/\/ range\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 personSortCriterion);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ sort criterion\r\n\r\n\u00a0\u00a0\u00a0 \/\/ print elements\r\n\u00a0\u00a0\u00a0 cout &lt;&lt; \"deque after sort():\" &lt;&lt; endl;\r\n\u00a0\u00a0\u00a0 for (pos = coll.begin(); pos != coll.end(); ++pos) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 cout &lt;&lt; *pos &lt;&lt; endl;\r\n\u00a0\u00a0\u00a0 }\r\n}\r\n\r\n\/*\r\ndeque before sort():\r\n[nicolai josuttis]\r\n[ulli josuttis]\r\n[anica josuttis]\r\n[lucas josuttis]\r\n[lucas otto]\r\n[lucas arm]\r\n[anica holle]\r\ndeque after sort():\r\n[lucas arm]\r\n[anica holle]\r\n[anica josuttis]\r\n[lucas josuttis]\r\n[nicolai josuttis]\r\n[ulli josuttis]\r\n[lucas otto]\r\n\r\n\u00a0*\/<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\/* The following code example is taken from the book \u00a0* &#8220;The C++ Standard Library &#8211; A Tutorial and Reference&#8221; \u00a0* by Nicolai M. Josuttis, Addison-Wesley, 1999 \u00a0* \u00a0* (C) Copyright Nicolai M. Josuttis 1999. \u00a0* Permission to copy, use, modify, sell and distribute this software \u00a0* is granted provided this copyright notice appears in &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/bangla.sitestree.com\/?p=10091\">Continue reading<\/a><\/p>\n","protected":false},"author":130,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1420,1417],"tags":[446,706,1440,539,1246,750],"class_list":["post-10091","post","type-post","status-publish","format-standard","hentry","category-c","category-code-programming-samples--","tag-c","tag-code","tag-deque","tag-object","tag-sort","tag-750","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":62215,"url":"http:\/\/bangla.sitestree.com\/?p=62215","url_meta":{"origin":10091,"position":0},"title":"Sort objects stored in deque #Programming Code Examples #C++ #Std Algorithms","author":"Author-Check- Article-or-Video","date":"May 15, 2021","format":false,"excerpt":"\/* The following code example is taken from the book * \"The C++ Standard Library - A Tutorial and Reference\" * by Nicolai M. Josuttis, Addison-Wesley, 1999 * * (C) Copyright Nicolai M. Josuttis 1999. * Permission to copy, use, modify, sell and distribute this software * is granted provided\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10552,"url":"http:\/\/bangla.sitestree.com\/?p=10552","url_meta":{"origin":10091,"position":1},"title":"C++ Template Example","author":"","date":"August 29, 2015","format":false,"excerpt":"\/* The following code example is taken from the book \u00a0* \"The C++ Standard Library - A Tutorial and Reference\" \u00a0* by Nicolai M. Josuttis, Addison-Wesley, 1999 \u00a0* \u00a0* (C) Copyright Nicolai M. Josuttis 1999. \u00a0* Permission to copy, use, modify, sell and distribute this software \u00a0* is granted provided\u2026","rel":"","context":"In &quot;C++&quot;","block_context":{"text":"C++","link":"http:\/\/bangla.sitestree.com\/?cat=1420"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10094,"url":"http:\/\/bangla.sitestree.com\/?p=10094","url_meta":{"origin":10091,"position":2},"title":"Use sorting criterion in sort function","author":"","date":"July 30, 2015","format":false,"excerpt":"\/* The following code example is taken from the book \u00a0* \"The C++ Standard Library - A Tutorial and Reference\" \u00a0* by Nicolai M. Josuttis, Addison-Wesley, 1999 \u00a0* \u00a0* (C) Copyright Nicolai M. Josuttis 1999. \u00a0* Permission to copy, use, modify, sell and distribute this software \u00a0* is granted provided\u2026","rel":"","context":"In &quot;C++&quot;","block_context":{"text":"C++","link":"http:\/\/bangla.sitestree.com\/?cat=1420"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27160,"url":"http:\/\/bangla.sitestree.com\/?p=27160","url_meta":{"origin":10091,"position":3},"title":"C++ Template Example #Programming Code Examples #Java\/J2EE\/J2ME #Ajax","author":"Author-Check- Article-or-Video","date":"May 12, 2021","format":false,"excerpt":"\/* The following code example is taken from the book * \"The C++ Standard Library - A Tutorial and Reference\" * by Nicolai M. Josuttis, Addison-Wesley, 1999 * * (C) Copyright Nicolai M. Josuttis 1999. * Permission to copy, use, modify, sell and distribute this software * is granted provided\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":62217,"url":"http:\/\/bangla.sitestree.com\/?p=62217","url_meta":{"origin":10091,"position":4},"title":"Use sorting criterion in sort function #Programming Code Examples #C++ #Std Algorithms","author":"Author-Check- Article-or-Video","date":"May 15, 2021","format":false,"excerpt":"\/* The following code example is taken from the book * \"The C++ Standard Library - A Tutorial and Reference\" * by Nicolai M. Josuttis, Addison-Wesley, 1999 * * (C) Copyright Nicolai M. Josuttis 1999. * Permission to copy, use, modify, sell and distribute this software * is granted provided\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27255,"url":"http:\/\/bangla.sitestree.com\/?p=27255","url_meta":{"origin":10091,"position":5},"title":"Call member function for each element in vector #Programming Code Examples #C++ #Vector","author":"Author-Check- Article-or-Video","date":"May 15, 2021","format":false,"excerpt":"\/* The following code example is taken from the book * \"The C++ Standard Library - A Tutorial and Reference\" * by Nicolai M. Josuttis, Addison-Wesley, 1999 * * (C) Copyright Nicolai M. Josuttis 1999. * Permission to copy, use, modify, sell and distribute this software * is granted provided\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10091","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/users\/130"}],"replies":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10091"}],"version-history":[{"count":3,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10091\/revisions"}],"predecessor-version":[{"id":10611,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10091\/revisions\/10611"}],"wp:attachment":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10091"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10091"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}