Berkay Elbir schreef op 17-4-2015 om 12:12:
Hello All,

I want to ask a question to you to be certain. Is void qsort() function obsolete? Should we use std::sort instead of this function? Because I have a priority list and need to sort it.

Yes, in general the things you can find in <QtAlgorithms> should be replaced with their stl (or other) counterparts. If you are just like I am and do not like the verbose syntax of specifying two iterators instead of just the whole container, you can use a small macro (or specify your own overloads for all algorithms of course). I use:

/**

  *  shorthand  to  writing  a  range  with  a  c.constBegin  and  c.constEnd.  
Instead,  you

  *  can  pass  in  constAll(c)

  */

#define  constAll(c)  c.constBegin(),  c.constEnd()

/**

  *  shorthand  to  writing  a  range  with  a  c.cBegin  and  c.cEnd.  
Instead,  you

  *  can  pass  in  ccAll(c)

  */

#define  cAll(c)  c.cBegin(),  c.cEnd()

/**

  *  shorthand  to  writing  a  range  with  a  c.begin  and  c.end.  Instead,  
you

  *  can  pass  in  all(c)

  */

#define  all(c)  c.begin(),  c.end()

Of course, if you use C++/11, you should probably be using begin(c) and end(c) 
instead of c.begin() and c.end()

You can then write:
std::sort(all(myList));

instead of:
std::sort(begin(myList), end(myList));
or
std::sort(myList.begin(), myList.end());

Of course, if you actually need to operate on part of a container, you can 
still use the iterators directly.

André




_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to