인프런 커뮤니티 질문&답변

박현기님의 프로필 이미지

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

struct 질문드립니다.

22.05.20 15:01 작성

·

128

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 

 

#include<bits/stdc++.h>
using namespace std;
struct Point{
int y, x;
Point(int y, int x) : y(y), x(x){}
Point(){y = -1; x = -1; }
bool operator < (const Point & a) const{
if(x == a.x) return y < a.y;
return x < a.x;
}
};
vector<Point> v;
int main(){
for(int i = 10; i >= 1; i--){
Point a = {i, i};
v.push_back(a);
}
sort(v.begin(), v.end());
for(auto it : v) cout << it.y << " : " << it.x << '\n';
return 0;
}

안녕하세요 교안 공부중에 모르는 부분이 있어서 질문드립니다.

struct에 대해 잘 모르는 부분이 있다보니 아래 부분이 무슨의미인지 모르겠습니다.

bool operator는 이해했습니다.

Point(int y, int x) : y(y), x(x){} Point(){y = -1; x = -1; }

답변 2

1

박현기님의 프로필 이미지
박현기
질문자

2022. 05. 20. 19:17

한번에 이해했습니다!

자바스크립트로 풀어주시니 쉽네요!

큰돌님의 프로필 이미지
큰돌
지식공유자

2022. 05. 20. 19:26

ㅎㅎ 또 질문 있으시면 언제든 질문주세요. :) 홧팅입니다. 

0

큰돌님의 프로필 이미지
큰돌
지식공유자

2022. 05. 20. 19:10

안녕하세요.  

constructor부분입니다. 

이는 클래스의 인스턴스 객체를 생성하고 초기화하는 특별한 메서드를 뜻하구요.

 

기본값으로 y = -1, x = -1로 놓는다는 의미입니다.

이를 다른 언어로 설명을 하자면

자바스크립트의 class를 선언할 때 constructor로 이렇게 y = -1, x= -1로 선언하는 것을 볼 수 있습니다. 이와 같은 의미입니다. 

class Polygon {
    constructor() {
        this.y = -1;
        this.x = -1;
    }
}

const poly1 = new Polygon();

 

감사합니다. :)