반응형
QList안에 있는 구조체 아이템의 항목을 기준으로 아이템을 정렬할 수 있어요.
○ 헤더
#include <QDebug> // qDebug() 출력을 위해 추가
struct People
{
QString Name;
int Age;
};
void ShowList(QList<People> list); // QList 내용 출력 용도
○ 메인
void MainWindow::ShowList(QList<People> list)
{
foreach (People people, list)
{
qDebug() << QString("Name : %1 / Age : %2").arg(people.Name).arg(people.Age);
}
}
// 이름 정렬
bool NameLessThan(const People &s1, const People &s2)
{
return s1.Name.toLower() < s2.Name.toLower();
}
// 나이 정렬
bool AgeLessThan(const People &s1, const People &s2)
{
return s1.Age < s2.Age;
}
// Main
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 사람 정보 추가
QList<People> peopleList;
peopleList.append(People {"Ghi", 10});
peopleList.append(People {"Def", 30});
peopleList.append(People {"Abc", 20});
qDebug("People List");
ShowList(peopleList);
// 이름 정렬
std::sort(peopleList.begin(), peopleList.end(), NameLessThan);
qDebug("Sort - Name");
ShowList(peopleList);
// 나이 정렬
std::sort(peopleList.begin(), peopleList.end(), AgeLessThan);
qDebug("Sort - Age");
ShowList(peopleList);
}
○ 실행 결과
Debugging starts
People List
"Name : Ghi / Age : 10"
"Name : Def / Age : 30"
"Name : Abc / Age : 20"
Sort - Name
"Name : Abc / Age : 20"
"Name : Def / Age : 30"
"Name : Ghi / Age : 10"
Sort - Age
"Name : Ghi / Age : 10"
"Name : Abc / Age : 20"
"Name : Def / Age : 30"
반응형
'프로그래밍 > 기타' 카테고리의 다른 글
[Qt] 네트워크 인터페이스 IP 가져오는 방법 (자기 IP 알아내기, QNetworkInterface) (0) | 2021.05.15 |
---|---|
[Qt] 파일 존재 여부 확인, 복사, 삭제하는 방법 (QFile) (0) | 2021.05.15 |
[Qt] QMessageBox로 알림, 아이콘, 선택 메시지 박스 띄우는 방법 (0) | 2021.05.15 |
[Linux, C++] 파일 존재, 읽기, 쓰기, 실행 권한 여부 확인하는 방법 (access) (0) | 2021.05.15 |
[Linux, C++] 파일 소유자, 파일 크기, 접근/수정 시간 등 파일 정보 보는 방법 (0) | 2021.05.15 |