gpt4 book ai didi

c++ - 自定义类型 Qlist 和范围

转载 作者:行者123 更新时间:2023-11-28 06:35:36 25 4
gpt4 key购买 nike

我正在尝试将包含 QString 的 Qlist 的学生类型的对象附加到学生类型的 Qlist,我已经验证 Qstring 在一个阶段被添加到学生对象,但是当我获取下面的代码;

for(int i = 0; i < studentList.size(); i++){
qDebug() << studentList.at(i).atindex(i);

显示在底部。

-Listmanager.h

#ifndef LISTMANAGER_H
#define LISTMANAGER_H
#include <QString>
#include <QList>
#include <QStandardItemModel>

class listManager: QObject
{
Q_OBJECT
public:
listManager();
listManager(QList<QString> list);
QAbstractItemModel* listManager::getmodelview();
QAbstractItemModel* listManager::getclassmodelView();
public:
QStandardItemModel *courseModel = new QStandardItemModel(0,0);
QStandardItemModel *classModel = new QStandardItemModel(0,0);

};

#endif // LISTMANAGER_H

-listmanager.cpp的相关部分

        student st;
int count2 = 0;
for (int i =6; i < list.size(); ++i){
if(count2 < 6){
st.appendtolist(list.at(i));
count2++;
}
if(count2 == 6){
count2 =0;
studentList.append(st);
st.showlist();
st.clearlist();
}
}

for(int i = 0; i < studentList.size(); i++){
qDebug() << studentList.at(i).atindex(i);

-student.cpp

        #include "student.h"
#include <QDebug>

student::student()
{
}

void student::appendtolist(QString item){
list->append(item);
}

void student::showlist(){
qDebug() << *list;
}
void student::clearlist(){
list->clear();
}

QString student::atindex(int index)const {
for(int i = 0; i < list->size(); i++){
if(index == i){
return list->at(i);
}
}

return "Not Good!";
}

-student.h

#ifndef STUDENT_H
#define STUDENT_H
#include <QString>
#include <QList>

class student
{
public:
QList<QString> *list = new QList<QString>();
student();
void student::appendtolist(QString item);
void student::showlist();
void student::clearlist();
QString atindex(int index) const;
};

#endif // STUDENT_H

输出:

"Not Good!" "Not Good!" "Not Good!" "Not Good!" "Not Good!" "Not Good!" "Not Good!" "Not Good!" "Not Good!" "Not Good!" "Not Good!" "Not Good!" "Not Good!" "Not Good!" "Not Good!" "Not Good!" "Not Good!"

最佳答案

动态分配列表完全没有意义,甚至效率低下,请使用 QList<QString> list;相反,更改 list->list.*listlist

你在 atindex() 中无缘无故地循环, 遍历列表直到 i 是没有意义的点击 index , 你可以检查 index在列表的范围内,只有一个表达式。

QString student::atindex(int index) const {
if (index < list.size()) return list.at(index); // index is in range
else return "Not good!"; // index is out of range - no good
}

关于c++ - 自定义类型 Qlist 和范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26827878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com