用c++写一个class Animal, 包含string类型成员变量name_animal,包含int类型成员变量age_animal, 将Animal装入vector中,使用bool cmp函数比较Animal变量大小,使用sort函数对animalList进行排序并打印输出
时间: 2024-02-03 12:12:06 浏览: 68
C++中string的成员函数.docx
以下是用C++实现的代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class Animal {
public:
string name_animal;
int age_animal;
Animal(string name, int age) : name_animal(name), age_animal(age) {}
bool operator<(const Animal& other) const {
return age_animal < other.age_animal;
}
};
bool cmp(const Animal& a, const Animal& b) {
return a.age_animal < b.age_animal;
}
int main() {
vector<Animal> animalList;
animalList.push_back(Animal("Lion", 5));
animalList.push_back(Animal("Tiger", 3));
animalList.push_back(Animal("Elephant", 10));
animalList.push_back(Animal("Giraffe", 7));
sort(animalList.begin(), animalList.end(), cmp);
for (const auto& animal : animalList) {
cout << "Name: " << animal.name_animal << ", Age: " << animal.age_animal << endl;
}
return 0;
}
```
这个程序定义了一个名为`Animal`的类,其中包含了`name_animal`和`age_animal`两个成员变量。`Animal`类有一个构造函数用于初始化这两个成员变量。`Animal`类还重载了小于号运算符,以便在使用`sort`函数排序时进行比较。
程序接着定义了一个`cmp`函数,在排序时使用。最后,程序创建了一个`vector`对象`animalList`,并向其中添加了四个`Animal`对象。程序对`animalList`进行排序,并打印输出每个`Animal`对象的名称和年龄。
阅读全文