minjeong-oh
기록
minjeong-oh
전체 방문자
오늘
어제
  • 분류 전체보기 (207)
    • ML & Neural Net (3)
    • ◼️GNN (1)
    • ◼️시계열 (1)
    • ◼️추천시스템 (0)
    • ◼️수학 (3)
    • Data Engineer (2)
    • ◼️Spark (1)
    • ◼️Kafka (1)
    • ◼️Elestic Search (0)
    • ◼️Redis (0)
    • ◼️ClickHouse (1)
    • Programming Language (4)
    • ◼️Git (1)
    • ◼️Python (1)
    • ◼️C++ (33)
    • ◼️Fortran 99 (2)
    • ◼️OpenGL (7)
    • ◼️MFC (35)
    • ◼️Flutter (46)
    • ◼️Kotlin (1)
    • ◼️Android (1)
    • ◼️Java (1)
    • ◼️C (4)
    • Development (0)
    • ◼️디자인패턴 (0)
    • ◼️네트워크 (2)
    • ◼️인증 (1)
    • Computer Science (4)
    • 알고리즘 문제풀이 (12)
    • SQL 고득점 Kit 문제풀이 (8)
    • 취업준비 (0)
    • Notion 정리 글 (1)
    • Article Scrap (3)
      • Careerly - Q&A (7)
      • Careerly - Post (2)
    • 기타 등등 (16)

블로그 메뉴

  • 글쓰기
  • 홈
  • 태그
  • 방명록
  • 편집

공지사항

인기 글

태그

  • 구조체배열포인터
  • kafka구축
  • SpringBootSwagger
  • 구조체매개변수
  • GSLB
  • 19년식그램램장착
  • 리눅스파티션
  • AI배워야하나
  • NextJSSwagger
  • hello테마
  • 인공지능개발자
  • OpenGL회전
  • 티스토리폰트배경색없애기
  • 그램풀스팩업그레이드
  • 이것이C++이다책참고
  • mfc
  • 그램업그레이드
  • 이차원구조체배열포인터
  • 19년식그램SSD장착
  • API문서정리

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
minjeong-oh

기록

◼️C++

[C++] 벡터 구조체 정렬. 오름차순, 내림차순, 같을 경우 다른 요소 기준으로 순서 지정

2023. 10. 20. 15:30

* #include <algorithm> 으로 선언해주고, sort 함수를 사용한다.

* sort를 위해 구조체안에 반드시 operator<를 작성해줘야한다.

#include <iostream>
#include <vector>
#include <algorithm>

using std::vector;

int curSortMode = 0; // 0: 오름차순, 1: 내림차순
struct Group{
	double value1;
	int value2;
	Group(double a, int b) {
		value1 = a;
		value2 = b;
	}

	bool operator<(const Group &d) const {
	    if(curSortMode ==0){
        	if(value1 == d.value1)
            	return value2 < d.value2;   //value1이 같으면 value2를 오름차순 정렬
            
		    return value1 < d.value1;  //value1을 기준으로 오름차순정렬
	    }else{
        	if(value1 == d.value1)
            	return value2 > d.value2;   //value1이 같으면 value2를 내림차순 정렬
                
		    return value1 > d.value1;  //value1을 기준으로 내림차순 정렬렬
		}
    }

};

int main(){
    vector<Group> V;
    
    int value1 = 10;
    int value2 = 100;
    V.push_back(Group(value, a));
    
    value = 20;
    value2 = 200;
    V.push_back(Group(value2, b));
    
    value = 30;
    value2 = 300;
    V.push_back(Group(value3, c));
    
    value = 40;
    value2 = 400;
    V.push_back(Group(value4, d));
    
    curSortMode = 0; //오름차순 정렬을 위해 설정
    sort(V.begin(), V.end());
    
    for(Group v: V){
        std::cout<<"-----"<<std::endl;
        std::cout<<v.value1 << v.value2<<std::endl;
    }
    
    curSortMode = 1; //내림차순 정렬을 위해 설정
    sort(V.begin(), V.end());
    
    for(Group v: V){
        std::cout<<"-----"<<std::endl;
        std::cout<<v.value1 << v.value2<<std::endl;
    }
    
}

 

참고 링크

 

C++ 개념 더보기

더보기
 

Visual Studio C++ 사전

c++ 공부 내용을 지속해서 추가하는 게시글입니다. 참고 책 Part1. C에서 C++로 문법 전환하기 Chap1. C와는 다른 C++ [C++] Hello world 출력해보기 [C++] 여러 변수 출력하기 [C++] Visual Studio 에서 추가로 사용

genius-duck-coding-story.tistory.com

'◼️C++' 카테고리의 다른 글

[C++] 구조체 벡터를 3차원 배열 포인터에 저장해서 사용하기  (0) 2023.10.20
[C++] 구조체를 함수로 넘겨서 값 변경하기  (0) 2023.10.19
[C++] 2차원 구조체 배열 포인터로 구조체에 접근하기  (0) 2023.10.19
[C++] 클래스의 정적멤버 (static)  (0) 2023.09.17
[C++] delete 예약어를 이용한 명시적 메서드 삭제  (0) 2023.09.17

    티스토리툴바