{"id":25255,"date":"2022-12-09T01:10:20","date_gmt":"2022-12-08T19:40:20","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/"},"modified":"2022-12-09T01:10:20","modified_gmt":"2022-12-08T19:40:20","slug":"solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/","title":{"rendered":"[Solved] Why can not use &#8220;return lhs.size() == rhs.size()&#8221; in std::sort() compare function?"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-38419572\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"38419572\" data-parentid=\"38419486\" data-score=\"3\" 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>Because <code>comp1(a,b)<\/code> and <code>comp1(b,a)<\/code> can both return <code>true<\/code>, which isn&#8217;t allowed. <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/en.cppreference.com\/w\/cpp\/algorithm\/sort\"><code>std::sort<\/code><\/a> states that:<\/p>\n<blockquote>\n<p>comp   &#8211;   comparison function object (i.e. an object that satisfies the requirements of <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/en.cppreference.com\/w\/cpp\/concept\/Compare\">Compare<\/a>) which returns \u200btrue if the first argument is less than (i.e. is ordered before) the second. <\/p>\n<\/blockquote>\n<p>And following the link to <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/en.cppreference.com\/w\/cpp\/concept\/Compare\">Compare<\/a> we also see:<\/p>\n<blockquote>\n<p>Establishes <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/en.wikipedia.com\/wiki\/Strict_weak_ordering\">strict weak ordering<\/a> relation with the following properties<br \/>\n  * For all a, comp(a,a)==false<br \/>\n  * If comp(a,b)==true then comp(b,a)==false<br \/>\n  * if comp(a,b)==true and comp(b,c)==true then comp(a,c)==true<\/p>\n<\/blockquote>\n<p>Your first function, <code>comp<\/code>, satisfies those requirements: no two objects could return <code>true<\/code>. If <code>comp(a,b)<\/code> returns <code>true,<\/code> then <code>comp(b,a)<\/code> returns <code>false<\/code>; however, this is not the case in your second function, <code>comp1<\/code>. <code>comp1(a,b)<\/code> can return <code>true<\/code>, as can <code>comp(b,a)<\/code>, so <code>sort<\/code> will never finish and therefore it won&#8217;t compile.<\/p>\n<p>You state that<\/p>\n<blockquote>\n<p>i want to put those same size strings together<\/p>\n<\/blockquote>\n<p>But just using <code>operator&lt;<\/code> will achieve those results: any string the same size will be grouped together.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">1<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Why can not use &#8220;return lhs.size() == rhs.size()&#8221; in std::sort() compare function? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Because comp1(a,b) and comp1(b,a) can both return true, which isn&#8217;t allowed. std::sort states that: comp &#8211; comparison function object (i.e. an object that satisfies the requirements of Compare) which returns \u200btrue if the first argument is less than (i.e. is ordered before) the second. And following the link to Compare we also see: Establishes &#8230; <a title=\"[Solved] Why can not use &#8220;return lhs.size() == rhs.size()&#8221; in std::sort() compare function?\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/\" aria-label=\"More on [Solved] Why can not use &#8220;return lhs.size() == rhs.size()&#8221; in std::sort() compare function?\">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-25255","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Why can not use &quot;return lhs.size() == rhs.size()&quot; in std::sort() compare function? - 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-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Why can not use &quot;return lhs.size() == rhs.size()&quot; in std::sort() compare function? - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] Because comp1(a,b) and comp1(b,a) can both return true, which isn&#8217;t allowed. std::sort states that: comp &#8211; comparison function object (i.e. an object that satisfies the requirements of Compare) which returns \u200btrue if the first argument is less than (i.e. is ordered before) the second. And following the link to Compare we also see: Establishes ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-08T19:40:20+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-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Why can not use &#8220;return lhs.size() == rhs.size()&#8221; in std::sort() compare function?\",\"datePublished\":\"2022-12-08T19:40:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/\"},\"wordCount\":192,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/\",\"name\":\"[Solved] Why can not use \\\"return lhs.size() == rhs.size()\\\" in std::sort() compare function? - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-12-08T19:40:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Why can not use &#8220;return lhs.size() == rhs.size()&#8221; in std::sort() compare function?\"}]},{\"@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] Why can not use \"return lhs.size() == rhs.size()\" in std::sort() compare function? - 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-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Why can not use \"return lhs.size() == rhs.size()\" in std::sort() compare function? - JassWeb","og_description":"[ad_1] Because comp1(a,b) and comp1(b,a) can both return true, which isn&#8217;t allowed. std::sort states that: comp &#8211; comparison function object (i.e. an object that satisfies the requirements of Compare) which returns \u200btrue if the first argument is less than (i.e. is ordered before) the second. And following the link to Compare we also see: Establishes ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/","og_site_name":"JassWeb","article_published_time":"2022-12-08T19:40:20+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-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Why can not use &#8220;return lhs.size() == rhs.size()&#8221; in std::sort() compare function?","datePublished":"2022-12-08T19:40:20+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/"},"wordCount":192,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/","url":"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/","name":"[Solved] Why can not use \"return lhs.size() == rhs.size()\" in std::sort() compare function? - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-12-08T19:40:20+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-why-can-not-use-return-lhs-size-rhs-size-in-stdsort-compare-function\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Why can not use &#8220;return lhs.size() == rhs.size()&#8221; in std::sort() compare function?"}]},{"@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\/25255","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=25255"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/25255\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=25255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=25255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=25255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}