MFC vector<struct> 정렬
- Develop/C,C++,MFC,API,Qt
- 2020. 12. 23.
반응형
728x90
반응형
Introduction
vector를 이용하면서 정렬이 필요한 경우가 있습니다. 여러가지를 이용할 수 있지만, 제목에 맞춰 vector를 이용하여 정렬하는 방법에 대해 정리하도록 하겠습니다. 간단한 내용이기 때문에 코드와 약간의 설명만 추가하여 넘어가도록 하겠습니다.
이후 필요한 자료가 있을 경우, 포스팅에 추가 혹은 블로그에 업로드 하도록 하겠습니다.
vector<struct> 형태 정렬 방법
#구조체 정의
typedef struct _monitorArg {
int index;
int left;
_monitorArg(int i, int _n){
index = i;
left = _n;
}
}ST_MONITORARG;
구조체는 index, left 값을 가지고 있습니다. 이때, left의 값을 이용하여 정렬(오름/내림)하고 싶을 때 다음과 같이 수행하시면 됩니다.
#vector 정렬 추가 함수(올림차순)
bool sortData(const ST_MONITORARG& a, const ST_MONITORARG& b)
{
if (a.left < b.left)
return true;
else
return false;
}
입력 파라미터로 구조체를 넣어주고, a,b 값의 left를 비교하여 true/false 값을 전달 합니다.
내림차순으로 변경하고 싶으시면 if문의 부호를 반대로 변경해주시면 됩니다.
그럼 정렬하는 코드를 살펴볼까요?
#정렬 수행 함수
void StructSort()
{
vector<ST_MONITORARG> mList;
mList.clear();
for (int i = 0; i < (int)m_monitorinfoList.size(); i++) {
mList.push_back(ST_MONITORARG(i, m_monitorinfoList[i].rect.left));
}
sort(mList.begin(), mList.end(), sortData);
}
먼저 mList 구조체에 값을 넣어 초기화를 합니다. 그리고 앞서 정의한 sort() 함수를 이용하면 다음과 같이 정렬 됩니다.
간단한 문제인데, 종종 쓰이게 됩니다. 한글을 이용하여 정렬을 한다던가, 혹은 기타 여러가지 자료들을 이용하여 정렬 가능합니다.
728x90
반응형
'Develop > C,C++,MFC,API,Qt' 카테고리의 다른 글
Visual Studio 2019 with Qt 연동 (C++) (0) | 2021.08.28 |
---|---|
C++ / 단일 배열참조 전달 방법 (0) | 2021.08.27 |
MFC - VS ERROR C1010 : 미리 컴파일된 헤더파일이 없습니다 (0) | 2021.08.21 |
Visual Studio 2019 MFC 추가하기 (0) | 2021.08.19 |
MFC Command line arguments 받기 (0) | 2021.08.18 |
Visual Studio C++ 32bit / 64bit Debug/Release 빌드 경로 설정 (0) | 2020.12.22 |
Visual Studio 정적(Static)/동적(Dynamic) 라이브러리 만들기 (0) | 2020.12.21 |
MFC based socket.io-client-cpp 모듈 (0) | 2020.12.18 |
MFC에서 콘솔 디버깅 하기 (0) | 2020.12.16 |
MFC Dialog 재활용 방법 (0) | 2020.12.15 |