{"id":10094,"date":"2015-07-30T12:00:22","date_gmt":"2015-07-30T16:00:22","guid":{"rendered":"http:\/\/bangla.salearningschool.com\/?p=10094"},"modified":"2015-08-04T10:09:52","modified_gmt":"2015-08-04T14:09:52","slug":"use-sorting-criterion-in-sort-function","status":"publish","type":"post","link":"http:\/\/bangla.sitestree.com\/?p=10094","title":{"rendered":"Use sorting criterion in sort function"},"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\r\n#include &lt;iostream&gt;\r\n#include &lt;vector&gt;\r\n#include &lt;deque&gt;\r\n#include &lt;list&gt;\r\n#include &lt;set&gt;\r\n#include &lt;map&gt;\r\n#include &lt;string&gt;\r\n#include &lt;algorithm&gt;\r\n#include &lt;iterator&gt;\r\n#include &lt;functional&gt;\r\n#include &lt;numeric&gt;\r\n\r\n\/* PRINT_ELEMENTS()\r\n\u00a0* - prints optional C-string optcstr followed by\r\n\u00a0* - all elements of the collection coll\r\n\u00a0* - separated by spaces\r\n\u00a0*\/\r\ntemplate &lt;class T&gt;\r\ninline void PRINT_ELEMENTS (const T&amp; coll, const char* optcstr=\"\")\r\n{\r\n\u00a0\u00a0\u00a0 typename T::const_iterator pos;\r\n\r\n\u00a0\u00a0\u00a0 std::cout &lt;&lt; optcstr;\r\n\u00a0\u00a0\u00a0 for (pos=coll.begin(); pos!=coll.end(); ++pos) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 std::cout &lt;&lt; *pos &lt;&lt; ' ';\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 std::cout &lt;&lt; std::endl;\r\n}\r\n\r\n\/* INSERT_ELEMENTS (collection, first, last)\r\n\u00a0* - fill values from first to last into the collection\r\n\u00a0* - NOTE: NO half-open range\r\n\u00a0*\/\r\ntemplate &lt;class T&gt;\r\ninline void INSERT_ELEMENTS (T&amp; coll, int first, int last)\r\n{\r\n\u00a0\u00a0\u00a0 for (int i=first; i&lt;=last; ++i) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 coll.insert(coll.end(),i);\r\n\u00a0\u00a0\u00a0 }\r\n}\r\n\r\nusing namespace std;\r\n\r\nvoid printCollection (const list&lt;int&gt;&amp; l)\r\n{\r\n\u00a0\u00a0\u00a0 PRINT_ELEMENTS(l);\r\n}\r\n\r\nbool lessForCollection (const list&lt;int&gt;&amp; l1, const list&lt;int&gt;&amp; l2)\r\n{\r\n\u00a0\u00a0\u00a0 return lexicographical_compare\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (l1.begin(), l1.end(),\u00a0\u00a0 \/\/ first range\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 l2.begin(), l2.end());\u00a0 \/\/ second range\r\n}\r\n\r\nint main()\r\n{\r\n\u00a0\u00a0\u00a0 list&lt;int&gt; c1, c2, c3, c4;\r\n\r\n\u00a0\u00a0\u00a0 \/\/ fill all collections with the same starting values\r\n\u00a0\u00a0\u00a0 INSERT_ELEMENTS(c1,1,5);\r\n\u00a0\u00a0\u00a0 c4 = c3 = c2 = c1;\r\n\r\n\u00a0\u00a0\u00a0 \/\/ and now some differences\r\n\u00a0\u00a0\u00a0 c1.push_back(7);\r\n\u00a0\u00a0\u00a0 c3.push_back(2);\r\n\u00a0\u00a0\u00a0 c3.push_back(0);\r\n\u00a0\u00a0\u00a0 c4.push_back(2);\r\n\r\n\u00a0\u00a0\u00a0 \/\/ create collection of collections\r\n\u00a0\u00a0\u00a0 vector&lt;list&lt;int&gt; &gt; cc;\r\n\r\n\u00a0\u00a0\u00a0 cc.push_back(c1);\r\n\u00a0\u00a0\u00a0 cc.push_back(c2);\r\n\u00a0\u00a0\u00a0 cc.push_back(c3);\r\n\u00a0\u00a0\u00a0 cc.push_back(c4);\r\n\u00a0\u00a0\u00a0 cc.push_back(c3);\r\n\u00a0\u00a0\u00a0 cc.push_back(c1);\r\n\u00a0\u00a0\u00a0 cc.push_back(c4);\r\n\u00a0\u00a0\u00a0 cc.push_back(c2);\r\n\r\n\u00a0\u00a0\u00a0 \/\/ print all collections\r\n\u00a0\u00a0\u00a0 for_each (cc.begin(), cc.end(),\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 printCollection);\r\n\u00a0\u00a0\u00a0 cout &lt;&lt; endl;\r\n\r\n\u00a0\u00a0\u00a0 \/\/ sort collection lexicographically\r\n\u00a0\u00a0\u00a0 sort (cc.begin(), cc.end(),\u00a0\u00a0\u00a0 \/\/ range\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 lessForCollection);\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ sorting criterion\r\n\r\n\u00a0\u00a0\u00a0 \/\/ print all collections again\r\n\u00a0\u00a0\u00a0 for_each (cc.begin(), cc.end(),\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 printCollection);\r\n}\r\n\/*\r\n1 2 3 4 5 7\r\n1 2 3 4 5\r\n1 2 3 4 5 2 0\r\n1 2 3 4 5 2\r\n1 2 3 4 5 2 0\r\n1 2 3 4 5 7\r\n1 2 3 4 5 2\r\n1 2 3 4 5\r\n\r\n1 2 3 4 5\r\n1 2 3 4 5\r\n1 2 3 4 5 2\r\n1 2 3 4 5 2\r\n1 2 3 4 5 2 0\r\n1 2 3 4 5 2 0\r\n1 2 3 4 5 7\r\n1 2 3 4 5 7\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=10094\">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,1443,773,1246,1442,600,1441],"class_list":["post-10094","post","type-post","status-publish","format-standard","hentry","category-c","category-code-programming-samples--","tag-c","tag-code","tag-criteria","tag-function","tag-sort","tag-1442","tag-600","tag-1441","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":10091,"url":"http:\/\/bangla.sitestree.com\/?p=10091","url_meta":{"origin":10094,"position":0},"title":"Sort objects stored in deque","author":"","date":"July 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":62215,"url":"http:\/\/bangla.sitestree.com\/?p=62215","url_meta":{"origin":10094,"position":1},"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":10554,"url":"http:\/\/bangla.sitestree.com\/?p=10554","url_meta":{"origin":10094,"position":2},"title":"Pointers","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;Ajax&quot;","block_context":{"text":"Ajax","link":"http:\/\/bangla.sitestree.com\/?cat=1418"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27255,"url":"http:\/\/bangla.sitestree.com\/?p=27255","url_meta":{"origin":10094,"position":3},"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":[]},{"id":10059,"url":"http:\/\/bangla.sitestree.com\/?p=10059","url_meta":{"origin":10094,"position":4},"title":"Transform binary representation into integral number using bitset","author":"","date":"July 27, 2015","format":false,"excerpt":"\/*\u00a0The\u00a0following\u00a0code\u00a0example\u00a0is\u00a0taken\u00a0from\u00a0the\u00a0book \u00a0*\u00a0\"The\u00a0C++\u00a0Standard\u00a0Library\u00a0-\u00a0A\u00a0Tutorial\u00a0and\u00a0Reference\" \u00a0*\u00a0by\u00a0Nicolai\u00a0M.\u00a0Josuttis,\u00a0Addison-Wesley,\u00a01999 \u00a0* \u00a0*\u00a0(C)\u00a0Copyright\u00a0Nicolai\u00a0M.\u00a0Josuttis\u00a01999. \u00a0*\u00a0Permission\u00a0to\u00a0copy,\u00a0use,\u00a0modify,\u00a0sell\u00a0and\u00a0distribute\u00a0this\u00a0software \u00a0*\u00a0is\u00a0granted\u00a0provided\u00a0this\u00a0copyright\u00a0notice\u00a0appears\u00a0in\u00a0all\u00a0copies. \u00a0*\u00a0This\u00a0software\u00a0is\u00a0provided\u00a0\"as\u00a0is\"\u00a0without\u00a0express\u00a0or\u00a0implied \u00a0*\u00a0warranty,\u00a0and\u00a0with\u00a0no\u00a0claim\u00a0as\u00a0to\u00a0its\u00a0suitability\u00a0for\u00a0any\u00a0purpose. \u00a0*\/ #include\u00a0<bitset> #include\u00a0<iostream> #include\u00a0<string> #include\u00a0<limits> using\u00a0namespace\u00a0std; int\u00a0main() { \u00a0\u00a0\u00a0\u00a0\/*\u00a0print\u00a0some\u00a0numbers\u00a0in\u00a0binary\u00a0representation \u00a0\u00a0\u00a0\u00a0\u00a0*\/ \u00a0\u00a0\u00a0\u00a0cout\u00a0<<\u00a0\"267\u00a0as\u00a0binary\u00a0short:\u00a0\u00a0\u00a0\u00a0\u00a0\" \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<<\u00a0bitset<numeric_limits<unsigned\u00a0short>::digits>(267) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<<\u00a0endl; \u00a0\u00a0\u00a0\u00a0cout\u00a0<<\u00a0\"267\u00a0as\u00a0binary\u00a0long:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\" \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<<\u00a0bitset<numeric_limits<unsigned\u00a0long>::digits>(267) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<<\u00a0endl; \u00a0\u00a0\u00a0\u00a0cout\u00a0<<\u00a0\"10,000,000\u00a0with\u00a024\u00a0bits:\u00a0\" \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<<\u00a0bitset<24>(1e7)\u00a0<<\u00a0endl; \u00a0\u00a0\u00a0\u00a0\/*\u00a0transform\u00a0binary\u00a0representation\u00a0into\u00a0integral\u00a0number \u00a0\u00a0\u00a0\u00a0\u00a0*\/ \u00a0\u00a0\u00a0\u00a0cout\u00a0<<\u00a0\"\\\"1000101011\\\"\u00a0as\u00a0number:\u00a0\u00a0\" \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<<\u00a0bitset<100>(string(\"1000101011\")).to_ulong()\u00a0<<\u00a0endl; } \u00a0\/*\u00a0 267\u00a0as\u00a0binary\u00a0short:\u00a0\u00a0\u00a0\u00a0\u00a00000000100001011 267\u00a0as\u00a0binary\u00a0long:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a000000000000000000000000100001011 10,000,000\u00a0with\u00a024\u00a0bits:\u00a0100110001001011010000000 1000101011\"\u00a0as\u00a0number:\u00a0\u00a0555 \u00a0*\/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0 \/\/ create a bitset that is 8 bits long bitset<8> bs;\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":10552,"url":"http:\/\/bangla.sitestree.com\/?p=10552","url_meta":{"origin":10094,"position":5},"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":[]}],"_links":{"self":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10094","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=10094"}],"version-history":[{"count":2,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10094\/revisions"}],"predecessor-version":[{"id":10613,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10094\/revisions\/10613"}],"wp:attachment":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10094"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10094"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10094"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}