定义一个包含学生信息的顺序表数据结构c++
时间: 2024-10-18 20:22:37 浏览: 37
在C++中,我们可以创建一个名为`StudentList`的线性数据结构,它是一个顺序存储的学生信息容器,比如一个动态数组或链表。这里我们演示如何使用`std::vector`作为基础,因为它提供了随机访问的优势:
```cpp
#include <iostream>
#include <vector>
// 定义学生类
class Student {
public:
std::string name;
int id;
float grade;
// 构造函数
Student(const std::string& n, int i, float g) : name(n), id(i), grade(g) {}
};
// 学生列表模板类
template <typename T>
class OrderedList {
private:
std::vector<T> students; // 存储学生的动态数组
public:
// 添加新学生
void addStudent(T student) {
students.push_back(student);
}
// 删除学生(假设通过id删除)
void removeStudent(int id) {
for (size_t i = 0; i < students.size(); ++i) {
if (students[i].id == id) {
students.erase(students.begin() + i);
break;
}
}
}
// 打印所有学生信息
void printStudents() const {
for (const auto& student : students) {
std::cout << "Name: " << student.name << ", ID: " << student.id << ", Grade: " << student.grade << std::endl;
}
}
};
int main() {
OrderedList<Student> studentList;
Student s1("Alice", 101, 85.0);
studentList.addStudent(s1);
// 打印初始学生列表
studentList.printStudents();
return 0;
}
阅读全文