I am a Java and C# programmer. Recently, I am working on C++ project. I am having a problem of how to write the sample code following in C++. The sample code following is to sort a property of a struct:
public struct Person
{
public string name;
public int age;
}
Add some Persons to a list and sort by the age:
static void main()
{
List<Person> persons = new List<Person>();
Person person = new Person();
person.age = 10;
person.name = "Jane";
persons.Add(person);
person = new Person();
person.age = 13;
person.name = "Jack";
persons.Add(person);
person = new Person();
person.age = 12;
person.name = "Anna";
persons.Add(person);
// sort age
persons.Sort(delegate(Person p1, Person p2)
{ return p1.age.CompareTo(p2.age); });
persons.ForEach(delegate(Person p)
{ Console.WriteLine(String.Format("{0} {1}", p.age, p.name)); });
}
How can I write an equivalent sample code in C++?
Given the
Persontype :Solution 1
Solution 2 (using boost::bind)
There also is a solution using C++0x lambdas.