My overloading operator < don't apply to sort function in cppWhy doesn't Java offer operator overloading?Storing C++ template function definitions in a .CPP fileConst correctness in C++ operator overloading returnsWhat are the basic rules and idioms for operator overloading?c++ Overload operator bool() gives an ambiguous overload error with operator+overloading operator<< operator== and operator!=Operator overloading in map/pairerror C2678: binary '==' : no operator found which takes a left-hand operand of type (or there is no acceptable conversion)Sorting deque with a functionWhy is const required for 'operator>' but not for 'operator<'?

How to not starve gigantic beasts

Re-entry to Germany after vacation using blue card

How do I check if a string is entirely made of the same substring?

Do I have an "anti-research" personality?

"Whatever a Russian does, they end up making the Kalashnikov gun"? Are there any similar proverbs in English?

How can Republicans who favour free markets, consistently express anger when they don't like the outcome of that choice?

Checks user level and limit the data before saving it to mongoDB

a sore throat vs a strep throat vs strep throat

What are the steps to solving this definite integral?

Is there any official lore on the Far Realm?

"The cow" OR "a cow" OR "cows" in this context

Why didn't the Space Shuttle bounce back into space as many times as possible so as to lose a lot of kinetic energy up there?

If a planet has 3 moons, is it possible to have triple Full/New Moons at once?

Philosophical question on logistic regression: why isn't the optimal threshold value trained?

"You've called the wrong number" or "You called the wrong number"

Is Diceware more secure than a long passphrase?

Two field separators (colon and space) in awk

How to denote matrix elements succinctly?

What is the philosophical significance of speech acts/implicature?

Can SQL Server create collisions in system generated constraint names?

Pre-plastic human skin alternative

Implications of cigar-shaped bodies having rings?

Phrase for the opposite of "foolproof"

Could the terminal length of components like resistors be reduced?



My overloading operator


Why doesn't Java offer operator overloading?Storing C++ template function definitions in a .CPP fileConst correctness in C++ operator overloading returnsWhat are the basic rules and idioms for operator overloading?c++ Overload operator bool() gives an ambiguous overload error with operator+overloading operator<< operator== and operator!=Operator overloading in map/pairerror C2678: binary '==' : no operator found which takes a left-hand operand of type (or there is no acceptable conversion)Sorting deque with a functionWhy is const required for 'operator>' but not for 'operator<'?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








3















I want to overload operator < between 2 pair. It works when i compare using < but it doesn't work when i use sort function built_in cpp.
#include
using namespace std;



typedef pair<int,int> pii;

bool operator < (const pii &a,const pii &b)
return a.second<b.second;


int main()

pii a,b;
a=make_pair(1,4);
b=make_pair(2,3);
if(a<b) cout<<"a<bn";
else cout<<"b<an";

vector<pii> v;
v.push_back(a);
v.push_back(b);
sort(v.begin(),v.end());

for(auto x:v)
cerr<<x.first<<" "<<x.second<<endl;

return 0;



Output:



b<a
1 4
2 3


I 'm confused why it doesn't print:



b<a
2 3
1 4









share|improve this question




























    3















    I want to overload operator < between 2 pair. It works when i compare using < but it doesn't work when i use sort function built_in cpp.
    #include
    using namespace std;



    typedef pair<int,int> pii;

    bool operator < (const pii &a,const pii &b)
    return a.second<b.second;


    int main()

    pii a,b;
    a=make_pair(1,4);
    b=make_pair(2,3);
    if(a<b) cout<<"a<bn";
    else cout<<"b<an";

    vector<pii> v;
    v.push_back(a);
    v.push_back(b);
    sort(v.begin(),v.end());

    for(auto x:v)
    cerr<<x.first<<" "<<x.second<<endl;

    return 0;



    Output:



    b<a
    1 4
    2 3


    I 'm confused why it doesn't print:



    b<a
    2 3
    1 4









    share|improve this question
























      3












      3








      3








      I want to overload operator < between 2 pair. It works when i compare using < but it doesn't work when i use sort function built_in cpp.
      #include
      using namespace std;



      typedef pair<int,int> pii;

      bool operator < (const pii &a,const pii &b)
      return a.second<b.second;


      int main()

      pii a,b;
      a=make_pair(1,4);
      b=make_pair(2,3);
      if(a<b) cout<<"a<bn";
      else cout<<"b<an";

      vector<pii> v;
      v.push_back(a);
      v.push_back(b);
      sort(v.begin(),v.end());

      for(auto x:v)
      cerr<<x.first<<" "<<x.second<<endl;

      return 0;



      Output:



      b<a
      1 4
      2 3


      I 'm confused why it doesn't print:



      b<a
      2 3
      1 4









      share|improve this question














      I want to overload operator < between 2 pair. It works when i compare using < but it doesn't work when i use sort function built_in cpp.
      #include
      using namespace std;



      typedef pair<int,int> pii;

      bool operator < (const pii &a,const pii &b)
      return a.second<b.second;


      int main()

      pii a,b;
      a=make_pair(1,4);
      b=make_pair(2,3);
      if(a<b) cout<<"a<bn";
      else cout<<"b<an";

      vector<pii> v;
      v.push_back(a);
      v.push_back(b);
      sort(v.begin(),v.end());

      for(auto x:v)
      cerr<<x.first<<" "<<x.second<<endl;

      return 0;



      Output:



      b<a
      1 4
      2 3


      I 'm confused why it doesn't print:



      b<a
      2 3
      1 4






      c++ sorting operator-overloading






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 9 at 9:17









      Hieu DoanHieu Doan

      224




      224






















          1 Answer
          1






          active

          oldest

          votes


















          7














          std::pair already has a built in operator<. If you want to sort by a different criteria you can pass a comparison function.



          std::sort(v.begin(),v.end(), [](auto& lhs, auto& rhs) return lhs.second < rhs.second; );





          share|improve this answer























          • thank you very much. It works well.

            – Hieu Doan
            Mar 9 at 17:42











          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55075790%2fmy-overloading-operator-dont-apply-to-sort-function-in-cpp%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          7














          std::pair already has a built in operator<. If you want to sort by a different criteria you can pass a comparison function.



          std::sort(v.begin(),v.end(), [](auto& lhs, auto& rhs) return lhs.second < rhs.second; );





          share|improve this answer























          • thank you very much. It works well.

            – Hieu Doan
            Mar 9 at 17:42















          7














          std::pair already has a built in operator<. If you want to sort by a different criteria you can pass a comparison function.



          std::sort(v.begin(),v.end(), [](auto& lhs, auto& rhs) return lhs.second < rhs.second; );





          share|improve this answer























          • thank you very much. It works well.

            – Hieu Doan
            Mar 9 at 17:42













          7












          7








          7







          std::pair already has a built in operator<. If you want to sort by a different criteria you can pass a comparison function.



          std::sort(v.begin(),v.end(), [](auto& lhs, auto& rhs) return lhs.second < rhs.second; );





          share|improve this answer













          std::pair already has a built in operator<. If you want to sort by a different criteria you can pass a comparison function.



          std::sort(v.begin(),v.end(), [](auto& lhs, auto& rhs) return lhs.second < rhs.second; );






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Mar 9 at 9:27









          supersuper

          3,6802818




          3,6802818












          • thank you very much. It works well.

            – Hieu Doan
            Mar 9 at 17:42

















          • thank you very much. It works well.

            – Hieu Doan
            Mar 9 at 17:42
















          thank you very much. It works well.

          – Hieu Doan
          Mar 9 at 17:42





          thank you very much. It works well.

          – Hieu Doan
          Mar 9 at 17:42



















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55075790%2fmy-overloading-operator-dont-apply-to-sort-function-in-cpp%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          1928 у кіно

          Захаров Федір Захарович

          Ель Греко