【发布时间】:2015-10-05 22:08:03
【问题描述】:
我有一个学生数组,我正在尝试将另一个学生添加到列表中。我正在编写 add 方法,它将根据学生的姓名按字母顺序将学生添加到列表中。然后列表中的所有其他元素将相应地移动。这是我写它的尝试:
void Array::add(Student* student)
{
if (size == MAX_STUDENTS)
return;
if(size == 0){
students[0] = student;
size ++;
}
if (size != 0){
for(int i = 0; i < MAX_STUDENTS; ++i){
if(students[i]->getName() >= student->getName()){
students[i-1] = student;
size ++;
}
}
}
}
students 是一个指向 Student 对象的指针数组Student** students;它在构造函数中与size一起被初始化
但是,这不会对元素进行排序。我猜我的逻辑不正确。我也不知道如何将元素向下移动到数组中。任何帮助将不胜感激。
【问题讨论】:
-
getName()返回什么?最好包含minimal reproducible example。 -
"students 是一个指向 Student 对象Student** 学生的指针数组;" 不,那是一个指针,而不是一个数组。
-
为什么不使用
std::priority_queue? -
@sfjac
getName()返回学生姓名