qfedu-cpp-level/day8/stl_code/d3.cpp

49 lines
937 B
C++
Raw Permalink Normal View History

2023-08-02 19:23:29 +08:00
// 基于 d3.cpp 的改进
// vector 存放对象的指针
#include <bits/stdc++.h>
using namespace std;
class Student
{
friend ostream &operator<<(ostream &out, const Student *stu);
private:
string name;
int age;
public:
Student(const string &name, int age)
{
this->name = name;
this->age = age;
}
};
ostream &operator<<(ostream &out, const Student *stu)
{
out << "name: " << stu->name << ", age: " << stu->age;
return out;
}
int main()
{
vector<Student *> v;
v.push_back(new Student("张三", 18));
v.push_back(new Student("李四", 19));
v.push_back(new Student("王五", 20));
v.pop_back(); // 删除最后一个元素
// 创建迭代器
vector<Student *>::iterator it = v.end();
while (it != v.begin())
{
it--;
cout << *it << endl; // 重载了<<运算符
delete *it; // 释放空间
}
return 0;
}