adding sorting examples

This commit is contained in:
Jidong Xiao
2024-02-09 13:48:47 -05:00
parent 1e8f9d9a36
commit 1a91659934
2 changed files with 96 additions and 0 deletions

View File

@@ -151,6 +151,57 @@ int main() {
} }
``` ```
### List Sort Example - Sorting Class Objects
The following [example](list_sort_objects.cpp) demonstrates how to call the list sort function to sort a list which contains class objects.
```cpp
#include <iostream>
#include <list>
#include <string>
// Define a simple class representing a person
class Person {
public:
std::string name;
int age;
// Constructor
Person(std::string name, int age) : name(name), age(age) {}
};
// Custom comparison function to sort Person objects by age
bool compareByAge(const Person& p1, const Person& p2) {
return p1.age < p2.age;
}
int main() {
// Create a list of Person objects
std::list<Person> people = {
{"Alice", 25},
{"Bob", 30},
{"Charlie", 20}
};
// Print the original list
std::cout << "Original list:" << std::endl;
for (const auto& person : people) {
std::cout << person.name << " (" << person.age << ")" << std::endl;
}
// Sort the list of Person objects using the custom comparison function
people.sort(compareByAge);
// Print the sorted list
std::cout << "\nSorted list:" << std::endl;
for (const auto& person : people) {
std::cout << person.name << " (" << person.age << ")" << std::endl;
}
return 0;
}
```
## 9.7 Erase & Iterators ## 9.7 Erase & Iterators
STL lists and vectors each have a special member function called erase. In particular, given list of ints s, STL lists and vectors each have a special member function called erase. In particular, given list of ints s,

View File

@@ -0,0 +1,45 @@
#include <iostream>
#include <list>
#include <string>
// Define a simple class representing a person
class Person {
public:
std::string name;
int age;
// Constructor
Person(std::string name, int age) : name(name), age(age) {}
};
// Custom comparison function to sort Person objects by age
bool compareByAge(const Person& p1, const Person& p2) {
return p1.age < p2.age;
}
int main() {
// Create a list of Person objects
std::list<Person> people = {
{"Alice", 25},
{"Bob", 30},
{"Charlie", 20}
};
// Print the original list
std::cout << "Original list:" << std::endl;
for (const auto& person : people) {
std::cout << person.name << " (" << person.age << ")" << std::endl;
}
// Sort the list of Person objects using the custom comparison function
people.sort(compareByAge);
// Print the sorted list
std::cout << "\nSorted list:" << std::endl;
for (const auto& person : people) {
std::cout << person.name << " (" << person.age << ")" << std::endl;
}
return 0;
}