Difference between revisions of "CPP/STL/Sort"

From ProgrammingExamples
< CPP
Jump to: navigation, search
(Created page with '==Sort.cpp== <source lang="cpp"> #include <iostream> #include <vector> #include <algorithm> void Standard(); void Descending(); void NonStandard(); struct Test { int a,b…')
 
(Sort.cpp)
Line 1: Line 1:
==Sort.cpp==
+
LDOPXk  <a href="http://ltnianvkxyuh.com/">ltnianvkxyuh</a>, [url=http://ntqfoqzqwyvx.com/]ntqfoqzqwyvx[/url], [link=http://swgeualvpzlu.com/]swgeualvpzlu[/link], http://fzwynyioszqu.com/
<source lang="cpp">
+
#include <iostream>
+
#include <vector>
+
#include <algorithm>
+
 
+
void Standard();
+
void Descending();
+
   
+
void NonStandard();
+
 
+
struct Test
+
{
+
  int a,b;
+
};
+
 
+
bool operator<(const Test &T1, const Test &T2)
+
{
+
  return(T1.a < T2.a);
+
}
+
 
+
bool SortB(const Test &T1, const Test &T2)
+
{
+
  return(T1.b < T2.b);
+
}
+
 
+
//////////////////////////
+
int main (int argc, char *argv[])
+
{
+
  srand(time(NULL));
+
  //Standard();
+
  Descending();
+
  //NonStandard();
+
 
+
  return 0;
+
}
+
 
+
void Standard()
+
{
+
  std::vector<double> a;
+
  a.push_back(4.5);
+
  a.push_back(1.2);
+
  a.push_back(7.8);
+
 
+
  //sort in ascending order
+
  std::sort(a.begin(), a.end());
+
 
+
  for(int i = 0; i < a.size(); i++)
+
  {
+
    std::cout << a[i] << std::endl;
+
  }
+
}
+
 
+
void Descending()
+
{
+
  std::vector<double> a;
+
  a.push_back(4.5);
+
  a.push_back(1.2);
+
  a.push_back(7.8);
+
 
+
  //sort in ascending order
+
  std::sort(a.rbegin(), a.rend());
+
 
+
  for(int i = 0; i < a.size(); i++)
+
  {
+
    std::cout << a[i] << std::endl;
+
  }
+
}
+
 
+
void NonStandard()
+
{
+
  std::vector<Test> T;
+
  Test T1;
+
  T1.a = rand()%50;
+
  T1.b = rand()%50;
+
  Test T2;
+
  T2.a = rand()%50;
+
  T2.b = rand()%50;
+
  Test T3;
+
  T3.a = rand()%50;
+
  T3.b = rand()%50;
+
  T.push_back(T1);
+
  T.push_back(T2);
+
  T.push_back(T3);
+
 
+
  std::sort(T.begin(), T.end());
+
 
+
  std::cout << "Sort by a:" << std::endl;
+
  for(unsigned int i = 0; i < T.size(); i++)
+
  {
+
    std::cout << T[i].a << " " << T[i].b << std::endl;
+
  }
+
 
+
  std::sort(T.begin(), T.end(), SortB);
+
 
+
  std::cout << std::endl << "Sort by b:" << std::endl;
+
  for(unsigned int i = 0; i < T.size(); i++)
+
  {
+
    std::cout << T[i].a << " " << T[i].b << std::endl;
+
  }
+
}
+
</source>
+

Revision as of 22:00, 21 February 2011

LDOPXk <a href="http://ltnianvkxyuh.com/">ltnianvkxyuh</a>, [url=http://ntqfoqzqwyvx.com/]ntqfoqzqwyvx[/url], [link=http://swgeualvpzlu.com/]swgeualvpzlu[/link], http://fzwynyioszqu.com/